report.html

Report generated on 07-Feb-2023 at 13:38:21 by pytest-html v3.1.1

Environment

JAVA_HOME C:\Program Files\Java\jdk-11.0.15
Packages {"pluggy": "0.13.1", "py": "1.11.0", "pytest": "7.2.0"}
Platform Windows-10-10.0.22621-SP0
Plugins {"Faker": "13.15.0", "allure-pytest": "2.11.1", "html": "3.1.1", "html-reporter": "0.2.9", "json-report": "1.5.0", "metadata": "2.0.2", "parallel": "0.1.1", "xdist": "3.1.0"}
Python 3.8.7

Summary

748 tests ran in 505.91 seconds.

78 passed, 0 skipped, 670 failed, 0 errors, 0 expected failures, 0 unexpected passes

Results

Result Test Duration Links
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-SysAdmin] 0.79
user = {'password': None, 'username': 'Alan6228'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAEE3340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-CFGTEMPLATE] 0.84
user = {'password': None, 'username': 'Alan6228'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0EC640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-System] 0.82
user = {'password': None, 'username': 'Alan6228'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D9A60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-AudAdmin] 0.85
user = {'password': None, 'username': 'Alan6228'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0560A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-LookupAdmin] 0.87
user = {'password': None, 'username': 'Alan6228'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0E41C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-CFGADMIN] 0.67
user = {'password': None, 'username': 'Alan6228'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0A07C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-AuthAdmin] 0.75
user = {'password': None, 'username': 'Alan6228'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0704C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-AppAdmin] 0.76
user = {'password': None, 'username': 'Alan6228'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB081220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-CfgImporter] 0.70
user = {'password': None, 'username': 'Alan6228'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0960D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user0-AuthUser] 0.63
user = {'password': None, 'username': 'Alan6228'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB09E790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Alan6228', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-SysAdmin] 0.83
user = {'password': None, 'username': 'Heather5250'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0BD880>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-CFGTEMPLATE] 0.76
user = {'password': None, 'username': 'Heather5250'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D72E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-System] 0.69
user = {'password': None, 'username': 'Heather5250'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0951C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzY5NzE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2NjExNSwianRpIjoiYzI0MGY5YjEtZGNiMC00NmUyLWJjNDQtZTgzMDlmN2FmNGVkIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.oL1Oo3iSLUE8OUiIzYoOGmTtzKzBAlBYDfGidoLUKgfqiAmcKwJ986Aa561tGAbznZSruRzbv1yM8A3zDywrah77jc0aPg6FZFvAEAjBAb9EAUNilDcmUU1ngRQfKJLIpbc3ITon2KLX86Az0lKbYioHSpAlTjXgotGt6sGe7ag'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-AudAdmin] 1.08
user = {'password': None, 'username': 'Heather5250'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10CDC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-LookupAdmin] 0.85
user = {'password': None, 'username': 'Heather5250'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10EBB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-CFGADMIN] 0.76
user = {'password': None, 'username': 'Heather5250'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB112820>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-AuthAdmin] 0.80
user = {'password': None, 'username': 'Heather5250'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB111A90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-AppAdmin] 0.61
user = {'password': None, 'username': 'Heather5250'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1231C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-CfgImporter] 0.73
user = {'password': None, 'username': 'Heather5250'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB114550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user1-AuthUser] 0.67
user = {'password': None, 'username': 'Heather5250'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10C220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Heather5250', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-SysAdmin] 0.76
user = {'password': None, 'username': 'Lori8588'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0BB520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-CFGTEMPLATE] 0.72
user = {'password': None, 'username': 'Lori8588'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0702B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-System] 0.67
user = {'password': None, 'username': 'Lori8588'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0C1BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-AudAdmin] 0.67
user = {'password': None, 'username': 'Lori8588'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB12B250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-LookupAdmin] 0.61
user = {'password': None, 'username': 'Lori8588'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1146D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-CFGADMIN] 0.67
user = {'password': None, 'username': 'Lori8588'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB112850>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-AuthAdmin] 0.65
user = {'password': None, 'username': 'Lori8588'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0DDDF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-AppAdmin] 0.70
user = {'password': None, 'username': 'Lori8588'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB13A8B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-CfgImporter] 0.59
user = {'password': None, 'username': 'Lori8588'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0568B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user2-AuthUser] 0.74
user = {'password': None, 'username': 'Lori8588'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0ECCA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Lori8588', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-SysAdmin] 0.73
user = {'password': None, 'username': 'James5235'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1144F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-CFGTEMPLATE] 0.64
user = {'password': None, 'username': 'James5235'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB111250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-System] 0.60
user = {'password': None, 'username': 'James5235'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0C1C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-AudAdmin] 0.58
user = {'password': None, 'username': 'James5235'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0ECB50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-LookupAdmin] 0.70
user = {'password': None, 'username': 'James5235'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB095730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-CFGADMIN] 0.63
user = {'password': None, 'username': 'James5235'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB13A3D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-AuthAdmin] 0.61
user = {'password': None, 'username': 'James5235'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB160550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-AppAdmin] 0.67
user = {'password': None, 'username': 'James5235'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB135B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-CfgImporter] 0.67
user = {'password': None, 'username': 'James5235'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB09EC70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user3-AuthUser] 0.59
user = {'password': None, 'username': 'James5235'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAFDA160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James5235', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-SysAdmin] 0.67
user = {'password': None, 'username': 'Hailey4208'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D75E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-CFGTEMPLATE] 0.73
user = {'password': None, 'username': 'Hailey4208'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0AFFA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-System] 0.74
user = {'password': None, 'username': 'Hailey4208'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D91C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-AudAdmin] 0.67
user = {'password': None, 'username': 'Hailey4208'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0A0A30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-LookupAdmin] 0.91
user = {'password': None, 'username': 'Hailey4208'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB12B5E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-CFGADMIN] 0.65
user = {'password': None, 'username': 'Hailey4208'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB141B20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-AuthAdmin] 0.66
user = {'password': None, 'username': 'Hailey4208'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0BB760>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-AppAdmin] 0.63
user = {'password': None, 'username': 'Hailey4208'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB152910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-CfgImporter] 0.80
user = {'password': None, 'username': 'Hailey4208'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB08CA30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user4-AuthUser] 0.64
user = {'password': None, 'username': 'Hailey4208'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB09E2E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hailey4208', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-SysAdmin] 0.58
user = {'password': None, 'username': 'Natalie4335'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB19C370>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Natalie4335'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB13A1C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-System] 0.55
user = {'password': None, 'username': 'Natalie4335'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB12BA30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-AudAdmin] 0.72
user = {'password': None, 'username': 'Natalie4335'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB111BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-LookupAdmin] 0.62
user = {'password': None, 'username': 'Natalie4335'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D95E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-CFGADMIN] 0.67
user = {'password': None, 'username': 'Natalie4335'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAB567C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-AuthAdmin] 0.59
user = {'password': None, 'username': 'Natalie4335'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB19C460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-AppAdmin] 0.65
user = {'password': None, 'username': 'Natalie4335'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB12BA30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-CfgImporter] 0.62
user = {'password': None, 'username': 'Natalie4335'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB164370>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user5-AuthUser] 0.59
user = {'password': None, 'username': 'Natalie4335'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D95B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Natalie4335', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-SysAdmin] 0.64
user = {'password': None, 'username': 'Anne9225'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB17A2B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Anne9225'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10C640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-System] 0.77
user = {'password': None, 'username': 'Anne9225'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB176B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-AudAdmin] 0.69
user = {'password': None, 'username': 'Anne9225'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB111A90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-LookupAdmin] 0.67
user = {'password': None, 'username': 'Anne9225'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB127F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-CFGADMIN] 0.70
user = {'password': None, 'username': 'Anne9225'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0966A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-AuthAdmin] 0.67
user = {'password': None, 'username': 'Anne9225'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0A0BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-AppAdmin] 0.69
user = {'password': None, 'username': 'Anne9225'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CC0D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-CfgImporter] 1.09
user = {'password': None, 'username': 'Anne9225'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB134040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user6-AuthUser] 0.69
user = {'password': None, 'username': 'Anne9225'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB176AC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Anne9225', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-SysAdmin] 0.68
user = {'password': None, 'username': 'Adrian7852'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB147760>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Adrian7852'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB114700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-System] 0.66
user = {'password': None, 'username': 'Adrian7852'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1234C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-AudAdmin] 0.57
user = {'password': None, 'username': 'Adrian7852'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB113E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-LookupAdmin] 0.57
user = {'password': None, 'username': 'Adrian7852'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1144C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-CFGADMIN] 0.69
user = {'password': None, 'username': 'Adrian7852'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB107250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-AuthAdmin] 0.81
user = {'password': None, 'username': 'Adrian7852'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10E1C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-AppAdmin] 0.65
user = {'password': None, 'username': 'Adrian7852'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB114C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-CfgImporter] 0.57
user = {'password': None, 'username': 'Adrian7852'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB100F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user7-AuthUser] 0.79
user = {'password': None, 'username': 'Adrian7852'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CE730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Adrian7852', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-SysAdmin] 0.80
user = {'password': None, 'username': 'Erin5656'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB18A550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Erin5656'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0A0970>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-System] 0.68
user = {'password': None, 'username': 'Erin5656'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB100E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-AudAdmin] 0.59
user = {'password': None, 'username': 'Erin5656'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB08C3A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-LookupAdmin] 0.72
user = {'password': None, 'username': 'Erin5656'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB17A8E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-CFGADMIN] 0.67
user = {'password': None, 'username': 'Erin5656'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-AuthAdmin] 0.64
user = {'password': None, 'username': 'Erin5656'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AD910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-AppAdmin] 0.62
user = {'password': None, 'username': 'Erin5656'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB141AC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-CfgImporter] 0.63
user = {'password': None, 'username': 'Erin5656'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB107BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user8-AuthUser] 0.61
user = {'password': None, 'username': 'Erin5656'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10CE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Erin5656', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-SysAdmin] 0.59
user = {'password': None, 'username': 'Nancy9709'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB095730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-CFGTEMPLATE] 0.57
user = {'password': None, 'username': 'Nancy9709'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10EAC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-System] 0.61
user = {'password': None, 'username': 'Nancy9709'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB100F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-AudAdmin] 0.58
user = {'password': None, 'username': 'Nancy9709'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D96A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-LookupAdmin] 0.74
user = {'password': None, 'username': 'Nancy9709'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB112E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-CFGADMIN] 0.71
user = {'password': None, 'username': 'Nancy9709'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB123310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-AuthAdmin] 1.30
user = {'password': None, 'username': 'Nancy9709'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BB6A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-AppAdmin] 0.67
user = {'password': None, 'username': 'Nancy9709'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184430>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-CfgImporter] 0.75
user = {'password': None, 'username': 'Nancy9709'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CEE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user9-AuthUser] 0.71
user = {'password': None, 'username': 'Nancy9709'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB141D30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nancy9709', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-SysAdmin] 0.67
user = {'password': None, 'username': 'Eric7504'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB070C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Eric7504'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1474F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-System] 0.65
user = {'password': None, 'username': 'Eric7504'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1020A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-AudAdmin] 0.57
user = {'password': None, 'username': 'Eric7504'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB164130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-LookupAdmin] 0.69
user = {'password': None, 'username': 'Eric7504'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1578B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-CFGADMIN] 0.69
user = {'password': None, 'username': 'Eric7504'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAFDAD60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-AuthAdmin] 0.62
user = {'password': None, 'username': 'Eric7504'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1138B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-AppAdmin] 0.71
user = {'password': None, 'username': 'Eric7504'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB207820>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-CfgImporter] 0.73
user = {'password': None, 'username': 'Eric7504'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB102640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user10-AuthUser] 0.69
user = {'password': None, 'username': 'Eric7504'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB134C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Eric7504', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-SysAdmin] 0.66
user = {'password': None, 'username': 'Christopher5938'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAFDAA60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-CFGTEMPLATE] 0.71
user = {'password': None, 'username': 'Christopher5938'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2071C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-System] 0.63
user = {'password': None, 'username': 'Christopher5938'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0E44C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-AudAdmin] 0.60
user = {'password': None, 'username': 'Christopher5938'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB236040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-LookupAdmin] 0.61
user = {'password': None, 'username': 'Christopher5938'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0C1C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-CFGADMIN] 0.59
user = {'password': None, 'username': 'Christopher5938'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1D8310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-AuthAdmin] 0.71
user = {'password': None, 'username': 'Christopher5938'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10C6D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-AppAdmin] 0.59
user = {'password': None, 'username': 'Christopher5938'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1FC220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-CfgImporter] 0.58
user = {'password': None, 'username': 'Christopher5938'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D9DF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user11-AuthUser] 0.71
user = {'password': None, 'username': 'Christopher5938'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0DDF10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Christopher5938', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-SysAdmin] 0.70
user = {'password': None, 'username': 'Gregory1469'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1C22B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-CFGTEMPLATE] 0.75
user = {'password': None, 'username': 'Gregory1469'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184DF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-System] 0.56
user = {'password': None, 'username': 'Gregory1469'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0BD1F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-AudAdmin] 0.59
user = {'password': None, 'username': 'Gregory1469'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB212910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-LookupAdmin] 0.62
user = {'password': None, 'username': 'Gregory1469'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CCE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-CFGADMIN] 0.66
user = {'password': None, 'username': 'Gregory1469'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-AuthAdmin] 0.59
user = {'password': None, 'username': 'Gregory1469'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB164490>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-AppAdmin] 0.58
user = {'password': None, 'username': 'Gregory1469'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0C3730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-CfgImporter] 0.61
user = {'password': None, 'username': 'Gregory1469'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AC970>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user12-AuthUser] 0.64
user = {'password': None, 'username': 'Gregory1469'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1B7730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Gregory1469', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-SysAdmin] 0.61
user = {'password': None, 'username': 'Brian6022'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0ECDF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Brian6022'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB202E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-System] 0.60
user = {'password': None, 'username': 'Brian6022'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BAEB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-AudAdmin] 0.65
user = {'password': None, 'username': 'Brian6022'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1FC460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-LookupAdmin] 0.70
user = {'password': None, 'username': 'Brian6022'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB164280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-CFGADMIN] 0.59
user = {'password': None, 'username': 'Brian6022'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB100430>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-AuthAdmin] 0.62
user = {'password': None, 'username': 'Brian6022'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB24FDC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-AppAdmin] 0.35
user = {'password': None, 'username': 'Brian6022'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1EDB80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-CfgImporter] 0.35
user = {'password': None, 'username': 'Brian6022'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2742B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user13-AuthUser] 0.49
user = {'password': None, 'username': 'Brian6022'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2027F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brian6022', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-SysAdmin] 0.38
user = {'password': None, 'username': 'James8142'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AC610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-CFGTEMPLATE] 0.39
user = {'password': None, 'username': 'James8142'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0C1B20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-System] 0.41
user = {'password': None, 'username': 'James8142'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB081DC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-AudAdmin] 0.37
user = {'password': None, 'username': 'James8142'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB160790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-LookupAdmin] 0.49
user = {'password': None, 'username': 'James8142'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BAA00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-CFGADMIN] 0.64
user = {'password': None, 'username': 'James8142'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FAF29D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-AuthAdmin] 0.39
user = {'password': None, 'username': 'James8142'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2A0C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-AppAdmin] 0.35
user = {'password': None, 'username': 'James8142'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB112B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-CfgImporter] 0.43
user = {'password': None, 'username': 'James8142'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BBE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user14-AuthUser] 0.35
user = {'password': None, 'username': 'James8142'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D9DC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James8142', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-SysAdmin] 0.44
user = {'password': None, 'username': 'Pamela5006'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2AE910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Pamela5006'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0955B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-System] 0.62
user = {'password': None, 'username': 'Pamela5006'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0E4280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-AudAdmin] 0.68
user = {'password': None, 'username': 'Pamela5006'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB232CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-LookupAdmin] 0.60
user = {'password': None, 'username': 'Pamela5006'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27ACD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-CFGADMIN] 0.74
user = {'password': None, 'username': 'Pamela5006'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1B7FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-AuthAdmin] 0.68
user = {'password': None, 'username': 'Pamela5006'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB236160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-AppAdmin] 0.64
user = {'password': None, 'username': 'Pamela5006'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2071C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-CfgImporter] 0.61
user = {'password': None, 'username': 'Pamela5006'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1ED8E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user15-AuthUser] 0.73
user = {'password': None, 'username': 'Pamela5006'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0DD580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela5006', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-SysAdmin] 0.88
user = {'password': None, 'username': 'David1503'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB271AC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-CFGTEMPLATE] 0.73
user = {'password': None, 'username': 'David1503'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB056730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-System] 0.64
user = {'password': None, 'username': 'David1503'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28F8B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-AudAdmin] 0.63
user = {'password': None, 'username': 'David1503'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0D7FD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-LookupAdmin] 0.58
user = {'password': None, 'username': 'David1503'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB234F40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-CFGADMIN] 0.67
user = {'password': None, 'username': 'David1503'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AC250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-AuthAdmin] 0.60
user = {'password': None, 'username': 'David1503'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1D39D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-AppAdmin] 0.69
user = {'password': None, 'username': 'David1503'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB263070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-CfgImporter] 0.64
user = {'password': None, 'username': 'David1503'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2A0940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user16-AuthUser] 0.62
user = {'password': None, 'username': 'David1503'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1344C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'David1503', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-SysAdmin] 0.59
user = {'password': None, 'username': 'Janet5668'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB160CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-CFGTEMPLATE] 0.55
user = {'password': None, 'username': 'Janet5668'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB141E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-System] 0.66
user = {'password': None, 'username': 'Janet5668'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C7C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-AudAdmin] 0.74
user = {'password': None, 'username': 'Janet5668'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB244E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-LookupAdmin] 0.74
user = {'password': None, 'username': 'Janet5668'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C51C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-CFGADMIN] 0.58
user = {'password': None, 'username': 'Janet5668'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BE9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-AuthAdmin] 0.52
user = {'password': None, 'username': 'Janet5668'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C5C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-AppAdmin] 0.70
user = {'password': None, 'username': 'Janet5668'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB296EE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-CfgImporter] 0.64
user = {'password': None, 'username': 'Janet5668'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0A05E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user17-AuthUser] 0.65
user = {'password': None, 'username': 'Janet5668'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CCD00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Janet5668', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-SysAdmin] 0.70
user = {'password': None, 'username': 'Brett5948'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1F31C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-CFGTEMPLATE] 0.77
user = {'password': None, 'username': 'Brett5948'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB19C0D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-System] 0.69
user = {'password': None, 'username': 'Brett5948'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1C2520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-AudAdmin] 0.67
user = {'password': None, 'username': 'Brett5948'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27D5E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-LookupAdmin] 0.59
user = {'password': None, 'username': 'Brett5948'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0BD790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-CFGADMIN] 0.70
user = {'password': None, 'username': 'Brett5948'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB250670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-AuthAdmin] 0.55
user = {'password': None, 'username': 'Brett5948'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BE0D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-AppAdmin] 0.73
user = {'password': None, 'username': 'Brett5948'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB100D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-CfgImporter] 0.58
user = {'password': None, 'username': 'Brett5948'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1FC160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user18-AuthUser] 0.57
user = {'password': None, 'username': 'Brett5948'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2A03D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brett5948', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-SysAdmin] 0.64
user = {'password': None, 'username': 'Tammy2306'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB234370>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-CFGTEMPLATE] 0.61
user = {'password': None, 'username': 'Tammy2306'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB24F7C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-System] 0.64
user = {'password': None, 'username': 'Tammy2306'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2DF2B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-AudAdmin] 0.72
user = {'password': None, 'username': 'Tammy2306'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CE910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-LookupAdmin] 0.64
user = {'password': None, 'username': 'Tammy2306'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1FCC70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-CFGADMIN] 0.68
user = {'password': None, 'username': 'Tammy2306'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2A0CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-AuthAdmin] 0.61
user = {'password': None, 'username': 'Tammy2306'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB234CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-AppAdmin] 0.59
user = {'password': None, 'username': 'Tammy2306'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB309FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-CfgImporter] 0.59
user = {'password': None, 'username': 'Tammy2306'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2071C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user19-AuthUser] 0.57
user = {'password': None, 'username': 'Tammy2306'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CCE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Tammy2306', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-SysAdmin] 0.59
user = {'password': None, 'username': 'Kyle1362'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C75E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-CFGTEMPLATE] 0.57
user = {'password': None, 'username': 'Kyle1362'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2CD7F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-System] 0.60
user = {'password': None, 'username': 'Kyle1362'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB309F10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-AudAdmin] 0.62
user = {'password': None, 'username': 'Kyle1362'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28F9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-LookupAdmin] 0.61
user = {'password': None, 'username': 'Kyle1362'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB244E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-CFGADMIN] 0.57
user = {'password': None, 'username': 'Kyle1362'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB152160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-AuthAdmin] 0.71
user = {'password': None, 'username': 'Kyle1362'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2AE430>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-AppAdmin] 0.68
user = {'password': None, 'username': 'Kyle1362'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2CDEE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-CfgImporter] 0.60
user = {'password': None, 'username': 'Kyle1362'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB18A0A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user20-AuthUser] 0.70
user = {'password': None, 'username': 'Kyle1362'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CC610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kyle1362', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-SysAdmin] 0.63
user = {'password': None, 'username': 'Susan1790'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0ECFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Susan1790'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BAB20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-System] 0.63
user = {'password': None, 'username': 'Susan1790'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D99A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-AudAdmin] 0.59
user = {'password': None, 'username': 'Susan1790'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C5DC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-LookupAdmin] 0.62
user = {'password': None, 'username': 'Susan1790'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB232B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-CFGADMIN] 0.61
user = {'password': None, 'username': 'Susan1790'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB274C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-AuthAdmin] 0.76
user = {'password': None, 'username': 'Susan1790'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB287D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-AppAdmin] 0.69
user = {'password': None, 'username': 'Susan1790'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1D3E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-CfgImporter] 0.65
user = {'password': None, 'username': 'Susan1790'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2DF910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user21-AuthUser] 0.59
user = {'password': None, 'username': 'Susan1790'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0560A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Susan1790', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-SysAdmin] 0.58
user = {'password': None, 'username': 'Benjamin2771'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2719A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-CFGTEMPLATE] 0.79
user = {'password': None, 'username': 'Benjamin2771'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D08B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-System] 0.72
user = {'password': None, 'username': 'Benjamin2771'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB32BCD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-AudAdmin] 0.58
user = {'password': None, 'username': 'Benjamin2771'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28FBE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-LookupAdmin] 0.58
user = {'password': None, 'username': 'Benjamin2771'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB244DC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-CFGADMIN] 0.68
user = {'password': None, 'username': 'Benjamin2771'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C5520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-AuthAdmin] 0.62
user = {'password': None, 'username': 'Benjamin2771'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D98E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-AppAdmin] 0.61
user = {'password': None, 'username': 'Benjamin2771'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2DF070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-CfgImporter] 0.65
user = {'password': None, 'username': 'Benjamin2771'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB32B5B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user22-AuthUser] 0.37
user = {'password': None, 'username': 'Benjamin2771'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2F5AF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Benjamin2771', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-SysAdmin] 0.44
user = {'password': None, 'username': 'Ryan5505'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2CDA90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-CFGTEMPLATE] 0.39
user = {'password': None, 'username': 'Ryan5505'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CEA60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-System] 0.37
user = {'password': None, 'username': 'Ryan5505'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BEF10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-AudAdmin] 0.44
user = {'password': None, 'username': 'Ryan5505'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27A8B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-LookupAdmin] 0.38
user = {'password': None, 'username': 'Ryan5505'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BAEE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-CFGADMIN] 0.70
user = {'password': None, 'username': 'Ryan5505'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB312CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-AuthAdmin] 0.56
user = {'password': None, 'username': 'Ryan5505'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2317C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-AppAdmin] 0.46
user = {'password': None, 'username': 'Ryan5505'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27DD60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-CfgImporter] 0.57
user = {'password': None, 'username': 'Ryan5505'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB363CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user23-AuthUser] 0.72
user = {'password': None, 'username': 'Ryan5505'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28FFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ryan5505', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-SysAdmin] 0.60
user = {'password': None, 'username': 'Andrew9440'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB157280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Andrew9440'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27A0D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-System] 0.61
user = {'password': None, 'username': 'Andrew9440'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1B7FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-AudAdmin] 0.63
user = {'password': None, 'username': 'Andrew9440'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2F30D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-LookupAdmin] 0.55
user = {'password': None, 'username': 'Andrew9440'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BABB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-CFGADMIN] 0.79
user = {'password': None, 'username': 'Andrew9440'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2F5BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-AuthAdmin] 0.58
user = {'password': None, 'username': 'Andrew9440'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CCB50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-AppAdmin] 0.62
user = {'password': None, 'username': 'Andrew9440'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB250070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-CfgImporter] 0.59
user = {'password': None, 'username': 'Andrew9440'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user24-AuthUser] 0.63
user = {'password': None, 'username': 'Andrew9440'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C5610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew9440', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-SysAdmin] 0.65
user = {'password': None, 'username': 'Luke6918'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB141C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Luke6918'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2503D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-System] 0.66
user = {'password': None, 'username': 'Luke6918'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2E01C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-AudAdmin] 0.59
user = {'password': None, 'username': 'Luke6918'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1CC5B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-LookupAdmin] 0.66
user = {'password': None, 'username': 'Luke6918'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB271940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-CFGADMIN] 0.78
user = {'password': None, 'username': 'Luke6918'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B73A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-AuthAdmin] 0.76
user = {'password': None, 'username': 'Luke6918'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB287BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-AppAdmin] 0.58
user = {'password': None, 'username': 'Luke6918'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1BA340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-CfgImporter] 0.65
user = {'password': None, 'username': 'Luke6918'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10E100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user25-AuthUser] 0.66
user = {'password': None, 'username': 'Luke6918'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB363F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Luke6918', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-SysAdmin] 0.61
user = {'password': None, 'username': 'Troy6219'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB350D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-CFGTEMPLATE] 0.68
user = {'password': None, 'username': 'Troy6219'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D4100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-System] 0.59
user = {'password': None, 'username': 'Troy6219'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28F9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-AudAdmin] 0.59
user = {'password': None, 'username': 'Troy6219'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1C3940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-LookupAdmin] 0.62
user = {'password': None, 'username': 'Troy6219'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B12E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-CFGADMIN] 0.58
user = {'password': None, 'username': 'Troy6219'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3CE910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-AuthAdmin] 0.81
user = {'password': None, 'username': 'Troy6219'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB339A60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-AppAdmin] 0.70
user = {'password': None, 'username': 'Troy6219'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB37D5B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-CfgImporter] 0.71
user = {'password': None, 'username': 'Troy6219'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3EBB50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user26-AuthUser] 0.78
user = {'password': None, 'username': 'Troy6219'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB232B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Troy6219', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-SysAdmin] 0.68
user = {'password': None, 'username': 'Ashley6458'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB36E0D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Ashley6458'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB37DC10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-System] 0.60
user = {'password': None, 'username': 'Ashley6458'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB339670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-AudAdmin] 0.65
user = {'password': None, 'username': 'Ashley6458'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3E95B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-LookupAdmin] 0.61
user = {'password': None, 'username': 'Ashley6458'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D48E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-CFGADMIN] 0.57
user = {'password': None, 'username': 'Ashley6458'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D0A00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-AuthAdmin] 0.66
user = {'password': None, 'username': 'Ashley6458'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB13A580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-AppAdmin] 0.58
user = {'password': None, 'username': 'Ashley6458'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB339550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-CfgImporter] 0.68
user = {'password': None, 'username': 'Ashley6458'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BC460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user27-AuthUser] 0.63
user = {'password': None, 'username': 'Ashley6458'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB09E130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Ashley6458', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-SysAdmin] 0.67
user = {'password': None, 'username': 'Dakota3901'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB164250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-CFGTEMPLATE] 0.64
user = {'password': None, 'username': 'Dakota3901'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB24FCD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-System] 0.60
user = {'password': None, 'username': 'Dakota3901'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C7760>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-AudAdmin] 0.56
user = {'password': None, 'username': 'Dakota3901'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1ACDC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-LookupAdmin] 0.68
user = {'password': None, 'username': 'Dakota3901'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BB130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-CFGADMIN] 0.78
user = {'password': None, 'username': 'Dakota3901'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2D06A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-AuthAdmin] 0.71
user = {'password': None, 'username': 'Dakota3901'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2639A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-AppAdmin] 0.69
user = {'password': None, 'username': 'Dakota3901'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27A5E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-CfgImporter] 0.72
user = {'password': None, 'username': 'Dakota3901'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43EFA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user28-AuthUser] 0.65
user = {'password': None, 'username': 'Dakota3901'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3F6C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dakota3901', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-SysAdmin] 0.57
user = {'password': None, 'username': 'Andrew6818'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB389B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-CFGTEMPLATE] 0.71
user = {'password': None, 'username': 'Andrew6818'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB363FD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-System] 0.58
user = {'password': None, 'username': 'Andrew6818'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3FC130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-AudAdmin] 0.58
user = {'password': None, 'username': 'Andrew6818'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3CCA60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-LookupAdmin] 0.57
user = {'password': None, 'username': 'Andrew6818'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43EE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-CFGADMIN] 0.56
user = {'password': None, 'username': 'Andrew6818'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3876D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-AuthAdmin] 0.61
user = {'password': None, 'username': 'Andrew6818'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB350460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-AppAdmin] 0.70
user = {'password': None, 'username': 'Andrew6818'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27D6D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-CfgImporter] 0.59
user = {'password': None, 'username': 'Andrew6818'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B1910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user29-AuthUser] 0.60
user = {'password': None, 'username': 'Andrew6818'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3D0E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Andrew6818', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-SysAdmin] 0.67
user = {'password': None, 'username': 'John1911'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43DFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-CFGTEMPLATE] 0.66
user = {'password': None, 'username': 'John1911'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27D820>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-System] 0.58
user = {'password': None, 'username': 'John1911'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB36EAC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-AudAdmin] 0.60
user = {'password': None, 'username': 'John1911'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B99D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-LookupAdmin] 0.60
user = {'password': None, 'username': 'John1911'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB350460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-CFGADMIN] 0.59
user = {'password': None, 'username': 'John1911'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB412700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-AuthAdmin] 0.62
user = {'password': None, 'username': 'John1911'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40BFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-AppAdmin] 0.64
user = {'password': None, 'username': 'John1911'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B1160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-CfgImporter] 0.56
user = {'password': None, 'username': 'John1911'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3897F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user30-AuthUser] 0.77
user = {'password': None, 'username': 'John1911'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2DF190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John1911', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-SysAdmin] 0.65
user = {'password': None, 'username': 'Nicholas7453'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2CDDF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-CFGTEMPLATE] 0.66
user = {'password': None, 'username': 'Nicholas7453'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B78B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-System] 0.68
user = {'password': None, 'username': 'Nicholas7453'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB0CFB50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-AudAdmin] 0.57
user = {'password': None, 'username': 'Nicholas7453'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB28F940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-LookupAdmin] 0.59
user = {'password': None, 'username': 'Nicholas7453'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2E0DC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-CFGADMIN] 0.74
user = {'password': None, 'username': 'Nicholas7453'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3805B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-AuthAdmin] 0.70
user = {'password': None, 'username': 'Nicholas7453'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB244100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-AppAdmin] 0.63
user = {'password': None, 'username': 'Nicholas7453'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB39CD00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-CfgImporter] 0.62
user = {'password': None, 'username': 'Nicholas7453'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3FCAC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user31-AuthUser] 0.72
user = {'password': None, 'username': 'Nicholas7453'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2BED00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicholas7453', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-SysAdmin] 0.67
user = {'password': None, 'username': 'Daniel2258'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB393C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-CFGTEMPLATE] 0.60
user = {'password': None, 'username': 'Daniel2258'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27D130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-System] 0.53
user = {'password': None, 'username': 'Daniel2258'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB19C310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-AudAdmin] 0.61
user = {'password': None, 'username': 'Daniel2258'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3CED60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-LookupAdmin] 0.65
user = {'password': None, 'username': 'Daniel2258'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB37DD90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-CFGADMIN] 0.63
user = {'password': None, 'username': 'Daniel2258'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4493D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-AuthAdmin] 0.66
user = {'password': None, 'username': 'Daniel2258'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3558B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-AppAdmin] 0.61
user = {'password': None, 'username': 'Daniel2258'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB457C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-CfgImporter] 0.64
user = {'password': None, 'username': 'Daniel2258'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4427C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user32-AuthUser] 0.58
user = {'password': None, 'username': 'Daniel2258'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB35AAF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Daniel2258', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-SysAdmin] 0.67
user = {'password': None, 'username': 'Pamela3128'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB244070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Pamela3128'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43DB50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-System] 0.66
user = {'password': None, 'username': 'Pamela3128'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB274520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-AudAdmin] 0.59
user = {'password': None, 'username': 'Pamela3128'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40BDF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-LookupAdmin] 0.73
user = {'password': None, 'username': 'Pamela3128'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB305460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-CFGADMIN] 0.63
user = {'password': None, 'username': 'Pamela3128'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3E9D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-AuthAdmin] 0.62
user = {'password': None, 'username': 'Pamela3128'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47AA30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-AppAdmin] 0.66
user = {'password': None, 'username': 'Pamela3128'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB41C2B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-CfgImporter] 0.63
user = {'password': None, 'username': 'Pamela3128'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB42F100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user33-AuthUser] 0.65
user = {'password': None, 'username': 'Pamela3128'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB416100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Pamela3128', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-SysAdmin] 0.61
user = {'password': None, 'username': 'Samantha3178'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4233A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-CFGTEMPLATE] 0.78
user = {'password': None, 'username': 'Samantha3178'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB49C3A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-System] 0.83
user = {'password': None, 'username': 'Samantha3178'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3F6EB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-AudAdmin] 0.82
user = {'password': None, 'username': 'Samantha3178'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB36E9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-LookupAdmin] 0.74
user = {'password': None, 'username': 'Samantha3178'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2AED90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-CFGADMIN] 0.69
user = {'password': None, 'username': 'Samantha3178'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB10E460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-AuthAdmin] 0.83
user = {'password': None, 'username': 'Samantha3178'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4C09A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-AppAdmin] 0.65
user = {'password': None, 'username': 'Samantha3178'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB49CA30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-CfgImporter] 0.65
user = {'password': None, 'username': 'Samantha3178'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB339490>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user34-AuthUser] 0.58
user = {'password': None, 'username': 'Samantha3178'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4A8B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Samantha3178', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-SysAdmin] 0.59
user = {'password': None, 'username': 'Nicole8652'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB13A580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-CFGTEMPLATE] 0.71
user = {'password': None, 'username': 'Nicole8652'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB380970>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-System] 0.62
user = {'password': None, 'username': 'Nicole8652'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4538B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-AudAdmin] 0.63
user = {'password': None, 'username': 'Nicole8652'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47A280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-LookupAdmin] 0.60
user = {'password': None, 'username': 'Nicole8652'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB49FA90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-CFGADMIN] 0.60
user = {'password': None, 'username': 'Nicole8652'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3CE790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-AuthAdmin] 0.86
user = {'password': None, 'username': 'Nicole8652'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3E97F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-AppAdmin] 0.73
user = {'password': None, 'username': 'Nicole8652'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4F2D30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-CfgImporter] 0.69
user = {'password': None, 'username': 'Nicole8652'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB42F9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user35-AuthUser] 0.84
user = {'password': None, 'username': 'Nicole8652'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C74F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Nicole8652', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-SysAdmin] 0.81
user = {'password': None, 'username': 'William3377'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4776D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-CFGTEMPLATE] 0.78
user = {'password': None, 'username': 'William3377'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47AA00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-System] 0.74
user = {'password': None, 'username': 'William3377'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4B12B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-AudAdmin] 0.66
user = {'password': None, 'username': 'William3377'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43D400>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-LookupAdmin] 0.71
user = {'password': None, 'username': 'William3377'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4A82E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-CFGADMIN] 0.62
user = {'password': None, 'username': 'William3377'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB498C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-AuthAdmin] 0.62
user = {'password': None, 'username': 'William3377'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EC370>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-AppAdmin] 0.67
user = {'password': None, 'username': 'William3377'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3CC580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-CfgImporter] 0.69
user = {'password': None, 'username': 'William3377'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EA910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user36-AuthUser] 0.67
user = {'password': None, 'username': 'William3377'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB457940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'William3377', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-SysAdmin] 0.71
user = {'password': None, 'username': 'John3555'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4A85E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-CFGTEMPLATE] 0.66
user = {'password': None, 'username': 'John3555'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB467F10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-System] 0.62
user = {'password': None, 'username': 'John3555'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4DD9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-AudAdmin] 0.79
user = {'password': None, 'username': 'John3555'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B7E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-LookupAdmin] 0.77
user = {'password': None, 'username': 'John3555'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3F65B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-CFGADMIN] 0.71
user = {'password': None, 'username': 'John3555'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB416460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-AuthAdmin] 0.68
user = {'password': None, 'username': 'John3555'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EC8B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-AppAdmin] 0.76
user = {'password': None, 'username': 'John3555'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB504F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-CfgImporter] 0.62
user = {'password': None, 'username': 'John3555'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB250FD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user37-AuthUser] 0.83
user = {'password': None, 'username': 'John3555'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47CA90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'John3555', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-SysAdmin] 0.65
user = {'password': None, 'username': 'Angela2650'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4D8B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Angela2650'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4490D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-System] 0.60
user = {'password': None, 'username': 'Angela2650'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AD280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-AudAdmin] 0.64
user = {'password': None, 'username': 'Angela2650'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB442EB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-LookupAdmin] 0.57
user = {'password': None, 'username': 'Angela2650'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB184310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-CFGADMIN] 0.73
user = {'password': None, 'username': 'Angela2650'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3635E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-AuthAdmin] 0.58
user = {'password': None, 'username': 'Angela2650'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3D06A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-AppAdmin] 0.65
user = {'password': None, 'username': 'Angela2650'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4F5130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-CfgImporter] 0.70
user = {'password': None, 'username': 'Angela2650'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EAAC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user38-AuthUser] 0.60
user = {'password': None, 'username': 'Angela2650'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB393160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Angela2650', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-SysAdmin] 0.73
user = {'password': None, 'username': 'Dennis1385'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4DD9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Dennis1385'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40B700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-System] 0.63
user = {'password': None, 'username': 'Dennis1385'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2C7CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-AudAdmin] 0.58
user = {'password': None, 'username': 'Dennis1385'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EAD90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-LookupAdmin] 0.59
user = {'password': None, 'username': 'Dennis1385'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3FCE50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-CFGADMIN] 0.58
user = {'password': None, 'username': 'Dennis1385'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB510340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-AuthAdmin] 0.58
user = {'password': None, 'username': 'Dennis1385'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB453D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-AppAdmin] 0.65
user = {'password': None, 'username': 'Dennis1385'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4B15B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-CfgImporter] 0.61
user = {'password': None, 'username': 'Dennis1385'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB497C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user39-AuthUser] 0.72
user = {'password': None, 'username': 'Dennis1385'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB510CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dennis1385', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-SysAdmin] 0.58
user = {'password': None, 'username': 'Paul8495'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47A700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-CFGTEMPLATE] 0.66
user = {'password': None, 'username': 'Paul8495'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB498940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-System] 0.64
user = {'password': None, 'username': 'Paul8495'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB545FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-AudAdmin] 0.77
user = {'password': None, 'username': 'Paul8495'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB487CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-LookupAdmin] 0.61
user = {'password': None, 'username': 'Paul8495'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB53B040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-CFGADMIN] 0.58
user = {'password': None, 'username': 'Paul8495'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4CA9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-AuthAdmin] 0.60
user = {'password': None, 'username': 'Paul8495'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB497790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-AppAdmin] 0.57
user = {'password': None, 'username': 'Paul8495'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB487B20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-CfgImporter] 0.58
user = {'password': None, 'username': 'Paul8495'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB416B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user40-AuthUser] 0.71
user = {'password': None, 'username': 'Paul8495'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB49F190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Paul8495', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-SysAdmin] 0.64
user = {'password': None, 'username': 'Robert3514'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4F2160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-CFGTEMPLATE] 0.61
user = {'password': None, 'username': 'Robert3514'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB57FBB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-System] 0.63
user = {'password': None, 'username': 'Robert3514'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB58E580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-AudAdmin] 0.61
user = {'password': None, 'username': 'Robert3514'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB107550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-LookupAdmin] 0.73
user = {'password': None, 'username': 'Robert3514'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB498190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-CFGADMIN] 0.82
user = {'password': None, 'username': 'Robert3514'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB27A460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-AuthAdmin] 0.79
user = {'password': None, 'username': 'Robert3514'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB477730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-AppAdmin] 0.71
user = {'password': None, 'username': 'Robert3514'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB569F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-CfgImporter] 0.68
user = {'password': None, 'username': 'Robert3514'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3EB700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user41-AuthUser] 0.76
user = {'password': None, 'username': 'Robert3514'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4874F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Robert3514', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-SysAdmin] 0.68
user = {'password': None, 'username': 'Rachel3285'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB41C5B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Rachel3285'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A1FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-System] 0.63
user = {'password': None, 'username': 'Rachel3285'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB510100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-AudAdmin] 0.80
user = {'password': None, 'username': 'Rachel3285'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4875E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-LookupAdmin] 0.59
user = {'password': None, 'username': 'Rachel3285'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB416EE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-CFGADMIN] 0.66
user = {'password': None, 'username': 'Rachel3285'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40B6A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-AuthAdmin] 0.67
user = {'password': None, 'username': 'Rachel3285'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3D0AC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-AppAdmin] 0.72
user = {'password': None, 'username': 'Rachel3285'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB377D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-CfgImporter] 0.62
user = {'password': None, 'username': 'Rachel3285'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB263100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user42-AuthUser] 0.64
user = {'password': None, 'username': 'Rachel3285'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AC4F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Rachel3285', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-SysAdmin] 0.74
user = {'password': None, 'username': 'Michael9966'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43D040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-CFGTEMPLATE] 0.61
user = {'password': None, 'username': 'Michael9966'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4E30D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-System] 0.59
user = {'password': None, 'username': 'Michael9966'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB58E040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-AudAdmin] 0.63
user = {'password': None, 'username': 'Michael9966'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB579640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-LookupAdmin] 0.61
user = {'password': None, 'username': 'Michael9966'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB2E09A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-CFGADMIN] 0.76
user = {'password': None, 'username': 'Michael9966'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB50B9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-AuthAdmin] 0.59
user = {'password': None, 'username': 'Michael9966'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB504F40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-AppAdmin] 0.74
user = {'password': None, 'username': 'Michael9966'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB442C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-CfgImporter] 0.61
user = {'password': None, 'username': 'Michael9966'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB307580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user43-AuthUser] 0.64
user = {'password': None, 'username': 'Michael9966'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB514CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michael9966', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-SysAdmin] 0.60
user = {'password': None, 'username': 'Mary6731'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB477730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Mary6731'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB427220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-System] 0.79
user = {'password': None, 'username': 'Mary6731'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB59EB80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-AudAdmin] 1.04
user = {'password': None, 'username': 'Mary6731'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB50B0A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-LookupAdmin] 0.68
user = {'password': None, 'username': 'Mary6731'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5628E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-CFGADMIN] 0.65
user = {'password': None, 'username': 'Mary6731'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5993A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-AuthAdmin] 0.66
user = {'password': None, 'username': 'Mary6731'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5B5A90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-AppAdmin] 0.75
user = {'password': None, 'username': 'Mary6731'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB583040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-CfgImporter] 0.67
user = {'password': None, 'username': 'Mary6731'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5970D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user44-AuthUser] 0.81
user = {'password': None, 'username': 'Mary6731'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5B3D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Mary6731', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-SysAdmin] 0.75
user = {'password': None, 'username': 'Brianna7825'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB35ABE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-CFGTEMPLATE] 0.63
user = {'password': None, 'username': 'Brianna7825'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5713A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-System] 0.80
user = {'password': None, 'username': 'Brianna7825'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB498B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-AudAdmin] 0.62
user = {'password': None, 'username': 'Brianna7825'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4CA0A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-LookupAdmin] 0.66
user = {'password': None, 'username': 'Brianna7825'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB49C910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-CFGADMIN] 0.78
user = {'password': None, 'username': 'Brianna7825'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5455E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-AuthAdmin] 0.60
user = {'password': None, 'username': 'Brianna7825'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40B0A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-AppAdmin] 0.71
user = {'password': None, 'username': 'Brianna7825'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB57F3D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-CfgImporter] 0.70
user = {'password': None, 'username': 'Brianna7825'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB544D00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user45-AuthUser] 0.62
user = {'password': None, 'username': 'Brianna7825'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5973D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Brianna7825', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-SysAdmin] 0.76
user = {'password': None, 'username': 'Stephen4080'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A4EE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-CFGTEMPLATE] 0.66
user = {'password': None, 'username': 'Stephen4080'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB477460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-System] 0.63
user = {'password': None, 'username': 'Stephen4080'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5A4B80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-AudAdmin] 1.02
user = {'password': None, 'username': 'Stephen4080'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5BC250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-LookupAdmin] 0.67
user = {'password': None, 'username': 'Stephen4080'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB501100>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-CFGADMIN] 0.60
user = {'password': None, 'username': 'Stephen4080'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB562D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-AuthAdmin] 0.58
user = {'password': None, 'username': 'Stephen4080'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5697F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-AppAdmin] 0.61
user = {'password': None, 'username': 'Stephen4080'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB59E520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-CfgImporter] 0.64
user = {'password': None, 'username': 'Stephen4080'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B1E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user46-AuthUser] 0.79
user = {'password': None, 'username': 'Stephen4080'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB477CA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephen4080', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-SysAdmin] 0.59
user = {'password': None, 'username': 'Garrett5671'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB53B5B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-CFGTEMPLATE] 0.59
user = {'password': None, 'username': 'Garrett5671'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB597B50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-System] 0.72
user = {'password': None, 'username': 'Garrett5671'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A4FA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-AudAdmin] 0.78
user = {'password': None, 'username': 'Garrett5671'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A17C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-LookupAdmin] 0.71
user = {'password': None, 'username': 'Garrett5671'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB412280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-CFGADMIN] 1.01
user = {'password': None, 'username': 'Garrett5671'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB58D670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-AuthAdmin] 1.47
user = {'password': None, 'username': 'Garrett5671'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5ACB20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-AppAdmin] 0.86
user = {'password': None, 'username': 'Garrett5671'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FD220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-CfgImporter] 0.57
user = {'password': None, 'username': 'Garrett5671'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5BEC10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user47-AuthUser] 0.48
user = {'password': None, 'username': 'Garrett5671'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5E3340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Garrett5671', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-SysAdmin] 0.64
user = {'password': None, 'username': 'Antonio8292'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB59E4F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-CFGTEMPLATE] 0.74
user = {'password': None, 'username': 'Antonio8292'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB58D910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-System] 0.64
user = {'password': None, 'username': 'Antonio8292'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A4310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-AudAdmin] 0.58
user = {'password': None, 'username': 'Antonio8292'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC614EE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-LookupAdmin] 0.67
user = {'password': None, 'username': 'Antonio8292'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB50B6A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-CFGADMIN] 0.53
user = {'password': None, 'username': 'Antonio8292'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F6670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-AuthAdmin] 0.56
user = {'password': None, 'username': 'Antonio8292'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5B3D30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-AppAdmin] 0.65
user = {'password': None, 'username': 'Antonio8292'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB427790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-CfgImporter] 0.73
user = {'password': None, 'username': 'Antonio8292'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1AD280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user48-AuthUser] 0.60
user = {'password': None, 'username': 'Antonio8292'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4A8910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Antonio8292', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-SysAdmin] 0.68
user = {'password': None, 'username': 'Steven7008'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5BC3A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-CFGTEMPLATE] 0.69
user = {'password': None, 'username': 'Steven7008'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4124C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-System] 0.70
user = {'password': None, 'username': 'Steven7008'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4673D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-AudAdmin] 0.62
user = {'password': None, 'username': 'Steven7008'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4877C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-LookupAdmin] 0.82
user = {'password': None, 'username': 'Steven7008'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3394F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-CFGADMIN] 0.48
user = {'password': None, 'username': 'Steven7008'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4C1280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-AuthAdmin] 0.39
user = {'password': None, 'username': 'Steven7008'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5E3340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-AppAdmin] 0.42
user = {'password': None, 'username': 'Steven7008'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB597730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-CfgImporter] 0.39
user = {'password': None, 'username': 'Steven7008'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4C0DF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user49-AuthUser] 0.57
user = {'password': None, 'username': 'Steven7008'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5B5C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Steven7008', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-SysAdmin] 0.61
user = {'password': None, 'username': 'James7209'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5016A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-CFGTEMPLATE] 0.65
user = {'password': None, 'username': 'James7209'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB152A00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-System] 0.62
user = {'password': None, 'username': 'James7209'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4E3790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-AudAdmin] 0.60
user = {'password': None, 'username': 'James7209'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC617700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-LookupAdmin] 0.73
user = {'password': None, 'username': 'James7209'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F2AF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-CFGADMIN] 0.65
user = {'password': None, 'username': 'James7209'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FDB80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-AuthAdmin] 0.72
user = {'password': None, 'username': 'James7209'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB57F160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-AppAdmin] 0.72
user = {'password': None, 'username': 'James7209'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A4190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-CfgImporter] 0.72
user = {'password': None, 'username': 'James7209'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FD9D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user50-AuthUser] 0.82
user = {'password': None, 'username': 'James7209'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC624E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'James7209', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-SysAdmin] 0.71
user = {'password': None, 'username': 'Stephanie7195'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC622CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-CFGTEMPLATE] 0.60
user = {'password': None, 'username': 'Stephanie7195'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC640340>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-System] 0.70
user = {'password': None, 'username': 'Stephanie7195'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5B3700>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-AudAdmin] 0.76
user = {'password': None, 'username': 'Stephanie7195'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5D3E80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-LookupAdmin] 0.69
user = {'password': None, 'username': 'Stephanie7195'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FF910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-CFGADMIN] 0.61
user = {'password': None, 'username': 'Stephanie7195'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC7AF1C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-AuthAdmin] 0.67
user = {'password': None, 'username': 'Stephanie7195'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC61F7C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-AppAdmin] 0.63
user = {'password': None, 'username': 'Stephanie7195'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC622C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-CfgImporter] 0.60
user = {'password': None, 'username': 'Stephanie7195'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC60D940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user51-AuthUser] 0.86
user = {'password': None, 'username': 'Stephanie7195'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC61A400>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Stephanie7195', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-SysAdmin] 0.56
user = {'password': None, 'username': 'Bradley1376'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5993A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-CFGTEMPLATE] 0.67
user = {'password': None, 'username': 'Bradley1376'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC60A670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-System] 0.73
user = {'password': None, 'username': 'Bradley1376'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC781070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-AudAdmin] 0.60
user = {'password': None, 'username': 'Bradley1376'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC786EE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-LookupAdmin] 0.65
user = {'password': None, 'username': 'Bradley1376'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB1F3F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-CFGADMIN] 0.61
user = {'password': None, 'username': 'Bradley1376'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC617940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-AuthAdmin] 0.71
user = {'password': None, 'username': 'Bradley1376'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC60D610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-AppAdmin] 0.63
user = {'password': None, 'username': 'Bradley1376'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB416640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-CfgImporter] 0.70
user = {'password': None, 'username': 'Bradley1376'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB57BFA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user52-AuthUser] 0.75
user = {'password': None, 'username': 'Bradley1376'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB3B7FD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Bradley1376', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-SysAdmin] 0.76
user = {'password': None, 'username': 'Dorothy9001'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC599730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Dorothy9001'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB47ABB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-System] 0.60
user = {'password': None, 'username': 'Dorothy9001'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4EC280>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-AudAdmin] 0.79
user = {'password': None, 'username': 'Dorothy9001'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC786D00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-LookupAdmin] 0.65
user = {'password': None, 'username': 'Dorothy9001'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC7AF4F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-CFGADMIN] 0.63
user = {'password': None, 'username': 'Dorothy9001'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5A4F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-AuthAdmin] 0.66
user = {'password': None, 'username': 'Dorothy9001'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB544250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-AppAdmin] 0.63
user = {'password': None, 'username': 'Dorothy9001'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB380C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-CfgImporter] 0.61
user = {'password': None, 'username': 'Dorothy9001'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4ECBE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user53-AuthUser] 0.70
user = {'password': None, 'username': 'Dorothy9001'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB305310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Dorothy9001', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-SysAdmin] 0.63
user = {'password': None, 'username': 'Kevin6594'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5B34C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-CFGTEMPLATE] 0.67
user = {'password': None, 'username': 'Kevin6594'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB571460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-System] 0.68
user = {'password': None, 'username': 'Kevin6594'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5BE5E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-AudAdmin] 0.75
user = {'password': None, 'username': 'Kevin6594'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FDBE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-LookupAdmin] 0.62
user = {'password': None, 'username': 'Kevin6594'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC606C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-CFGADMIN] 0.70
user = {'password': None, 'username': 'Kevin6594'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5D3730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-AuthAdmin] 0.67
user = {'password': None, 'username': 'Kevin6594'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5BC7C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-AppAdmin] 0.62
user = {'password': None, 'username': 'Kevin6594'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC67CD30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-CfgImporter] 0.73
user = {'password': None, 'username': 'Kevin6594'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F6910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user54-AuthUser] 0.65
user = {'password': None, 'username': 'Kevin6594'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC684580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Kevin6594', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-SysAdmin] 0.63
user = {'password': None, 'username': 'Michelle8089'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC6100A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-CFGTEMPLATE] 0.61
user = {'password': None, 'username': 'Michelle8089'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5FF6A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-System] 0.63
user = {'password': None, 'username': 'Michelle8089'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F6580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-AudAdmin] 0.73
user = {'password': None, 'username': 'Michelle8089'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC65EF70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-LookupAdmin] 0.57
user = {'password': None, 'username': 'Michelle8089'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC622190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-CFGADMIN] 0.65
user = {'password': None, 'username': 'Michelle8089'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC684610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-AuthAdmin] 0.64
user = {'password': None, 'username': 'Michelle8089'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB43DF40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-AppAdmin] 0.66
user = {'password': None, 'username': 'Michelle8089'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F6E50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-CfgImporter] 0.63
user = {'password': None, 'username': 'Michelle8089'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC660160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user55-AuthUser] 0.61
user = {'password': None, 'username': 'Michelle8089'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC684D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Michelle8089', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-SysAdmin] 0.62
user = {'password': None, 'username': 'Hannah3252'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4E3F70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Hannah3252'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB57BFA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-System] 0.61
user = {'password': None, 'username': 'Hannah3252'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC660130>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-AudAdmin] 0.68
user = {'password': None, 'username': 'Hannah3252'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC7ADBE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-LookupAdmin] 0.63
user = {'password': None, 'username': 'Hannah3252'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC656610>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-CFGADMIN] 0.59
user = {'password': None, 'username': 'Hannah3252'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC6247C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-AuthAdmin] 0.58
user = {'password': None, 'username': 'Hannah3252'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC69BC10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-AppAdmin] 0.72
user = {'password': None, 'username': 'Hannah3252'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB34D2E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-CfgImporter] 0.62
user = {'password': None, 'username': 'Hannah3252'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC614FD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user56-AuthUser] 0.69
user = {'password': None, 'username': 'Hannah3252'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F2D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Hannah3252', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-SysAdmin] 0.63
user = {'password': None, 'username': 'Cheryl9743'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC68A070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-CFGTEMPLATE] 0.62
user = {'password': None, 'username': 'Cheryl9743'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC6103A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-System] 0.62
user = {'password': None, 'username': 'Cheryl9743'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB467190>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-AudAdmin] 0.60
user = {'password': None, 'username': 'Cheryl9743'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB40BFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-LookupAdmin] 0.73
user = {'password': None, 'username': 'Cheryl9743'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC68A0A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-CFGADMIN] 0.64
user = {'password': None, 'username': 'Cheryl9743'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB58E580>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-AuthAdmin] 0.65
user = {'password': None, 'username': 'Cheryl9743'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC67DC10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-AppAdmin] 0.60
user = {'password': None, 'username': 'Cheryl9743'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB4C0DF0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-CfgImporter] 0.59
user = {'password': None, 'username': 'Cheryl9743'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC794D90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user57-AuthUser] 0.68
user = {'password': None, 'username': 'Cheryl9743'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5B33D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheryl9743', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-SysAdmin] 0.64
user = {'password': None, 'username': 'Cheyenne1834'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5F6220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-CFGTEMPLATE] 0.60
user = {'password': None, 'username': 'Cheyenne1834'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC5E3C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-System] 0.62
user = {'password': None, 'username': 'Cheyenne1834'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FB5A46D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-AudAdmin] 0.58
user = {'password': None, 'username': 'Cheyenne1834'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC6B3D30>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-LookupAdmin] 22.62
self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
af, socktype, proto, canonname, sa = res
sock = None
try:
sock = socket.socket(af, socktype, proto)

# If provided, set socket level options before connecting.
_set_socket_options(sock, socket_options)

if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
sock.settimeout(timeout)
if source_address:
sock.bind(source_address)
sock.connect(sa)
return sock

except socket.error as e:
err = e
if sock is not None:
sock.close()
sock = None

if err is not None:
> raise err

C:\Python38\lib\site-packages\urllib3\util\connection.py:95:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
af, socktype, proto, canonname, sa = res
sock = None
try:
sock = socket.socket(af, socktype, proto)

# If provided, set socket level options before connecting.
_set_socket_options(sock, socket_options)

if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
sock.settimeout(timeout)
if source_address:
sock.bind(source_address)
> sock.connect(sa)
E TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

C:\Python38\lib\site-packages\urllib3\util\connection.py:85: TimeoutError

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC65E280>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', body = '{}'
headers = {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...V14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/api/roles/removeUserFromRole', query='uid=username&uid=password&roleName=LookupAdmin&agencyId=0', fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC65E280>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{}', 'headers': {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'...14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', body = '{}'
headers = {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...V14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', body = '{}'
headers = {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...V14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', body = b'{}'
headers = {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...V14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, message_body = b'{}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>, message_body = b'{}', encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>
data = b'DELETE /ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0 HTTP/1.1\r\nH...XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno\r\nContent-Length: 2\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC5A4130>, request = <PreparedRequest [DELETE]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC65E280>, method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', body = '{}'
headers = {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...V14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Content-Length': '2'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/api/roles/removeUserFromRole', query='uid=username&uid=password&roleName=LookupAdmin&agencyId=0', fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'DELETE'
url = '/ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>: Failed to establish a new connec...roperly respond after a period of time, or established connection failed because connected host has failed to respond')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC65E280>, _stacktrace = <traceback object at 0x00000245FC6BED80>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC65ECD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:92: in delete
rs_api = requests.delete(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:157: in delete
return request("delete", url, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC5A4130>, request = <PreparedRequest [DELETE]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/api/roles/removeUserFromRole?uid=username&uid=password&roleName=LookupAdmin&agencyId=0 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC684DF0>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Cheyenne1834', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-CFGADMIN] 12.06
self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD73FA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD73FA0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCC36280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD73E20>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD73FA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC36280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD73FA0>, _stacktrace = <traceback object at 0x00000245FC7A8B80>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC36280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCD73640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD73E20>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC36280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-AuthAdmin] 12.04
self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCAFEE50>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCAFEE50>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCAFEAC0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCAFEE50>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCAFEE50>, _stacktrace = <traceback object at 0x00000245FC959DC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCAFE160>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCAFEAC0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCAFE610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA11070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA11070>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD730A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA11070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA11070>, _stacktrace = <traceback object at 0x00000245FCB3A200>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCD739A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD730A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA11DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC92CE20>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC92CE20>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC92C220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC92CC40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC92CE20>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC92C220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC92CE20>, _stacktrace = <traceback object at 0x00000245FC91D340>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC92C220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC92C7F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC92CC40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC92C220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user58-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC984D90>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC984D90>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA83250>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC984AC0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC984D90>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA83250>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC984D90>, _stacktrace = <traceback object at 0x00000245FC987AC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA83250>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Cheyenne1834'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC984790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC984AC0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA83250>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA2D160>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA2D160>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA2DF70>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA2D160>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA2D160>, _stacktrace = <traceback object at 0x00000245FCC06180>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCA2DB20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA2DF70>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA0C640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA37AF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA37AF0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA377F0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA37AF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA37AF0>, _stacktrace = <traceback object at 0x00000245FCAF8240>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCA373D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA377F0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA37DC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCE1F40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCE1F40>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC955280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC955280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCE1C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCE1F40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC955280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCE1F40>, _stacktrace = <traceback object at 0x00000245FC942640>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC955280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCE1880>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCE1C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC955280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98CCD0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98CCD0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC98C880>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98CCD0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98CCD0>, _stacktrace = <traceback object at 0x00000245FC989340>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC98C400>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC98C880>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98CEB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98BD30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98BD30>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC98B220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCE1160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98BD30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98B220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC98BD30>, _stacktrace = <traceback object at 0x00000245FC96BB80>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98B220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCE1F40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCE1160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC98B220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCEE4F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCEE4F0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCEE610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCEE4F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCEE4F0>, _stacktrace = <traceback object at 0x00000245FCC88700>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCEEE80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCEE610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCEE8E0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-AuthAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCCE400>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCCE400>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCCE070>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCCE400>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCCE400>, _stacktrace = <traceback object at 0x00000245FC9315C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCCEE50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCCE070>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCC9700>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9B6880>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9B6880>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9B6520>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9B6880>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9B6880>, _stacktrace = <traceback object at 0x00000245FC6D2AC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC9B61F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9B6520>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA23AC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C4E50>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C4E50>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9C4B50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C4E50>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C4E50>, _stacktrace = <traceback object at 0x00000245FC9AD580>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC9C4040>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9C4B50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9C4460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user59-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCAA670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCAA670>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCAA8E0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCAA670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCAA670>, _stacktrace = <traceback object at 0x00000245FCAC8340>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason6231'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCAAB80>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCAA8E0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD67A30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDF4EB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDF4EB0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDF4B80>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDF4EB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDF4EB0>, _stacktrace = <traceback object at 0x00000245FCAFB340>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCDF4790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDF4B80>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDF42B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC8802E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC8802E0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC880FD0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC8802E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC8802E0>, _stacktrace = <traceback object at 0x00000245FCE366C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC880C40>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC880FD0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCAA8B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7C40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7C40>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDC7940>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7C40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7C40>, _stacktrace = <traceback object at 0x00000245FC8A28C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCDC7520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDC7940>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC89EDC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC89EDC0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC89ECA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC89EDC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC89EDC0>, _stacktrace = <traceback object at 0x00000245FC8ACA00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC89E640>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC89ECA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDCCD30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE59F40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE59F40>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE59C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE59F40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE59F40>, _stacktrace = <traceback object at 0x00000245FCE5D780>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCE59880>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE59C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC6280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE27CD0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE27CD0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE27880>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE27CD0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE27CD0>, _stacktrace = <traceback object at 0x00000245FCE08080>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCE27400>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE27880>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE27EB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-AuthAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE0AEE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE0AEE0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE0ABB0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE0AEE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE0AEE0>, _stacktrace = <traceback object at 0x00000245FCEB5740>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCE0A940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE0ABB0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE3A100>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF1E4C0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF1E4C0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCF1E280>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF1E4C0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF1E4C0>, _stacktrace = <traceback object at 0x00000245FCD6FD00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCF1EE50>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCF1E280>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF1E940>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDA89A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDA89A0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDA86A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDA89A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDA89A0>, _stacktrace = <traceback object at 0x00000245FCE6A380>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCDA8310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDA86A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8A07F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user60-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA622B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA622B0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA62EE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA622B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCA622B0>, _stacktrace = <traceback object at 0x00000245FCCF6BC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Alejandro4698'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCA62BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCA62EE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA626D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE42880>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE42880>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE42610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE42880>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE42880>, _stacktrace = <traceback object at 0x00000245FCCF6080>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCDA84F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE42610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10BFA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10BFA0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD10BD90>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10BFA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10BFA0>, _stacktrace = <traceback object at 0x00000245FD0F5A40>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD10B940>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD10BD90>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B3A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD101EE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD101EE0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD101C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD101EE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD101EE0>, _stacktrace = <traceback object at 0x00000245FCC60880>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD101910>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD101C40>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6D3490>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C5310>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C5310>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9C5B50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C5310>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9C5310>, _stacktrace = <traceback object at 0x00000245FD11E500>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC9C5C70>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9C5B50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC8801F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD87C70>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD87C70>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCD87070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD87970>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD87C70>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD87070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD87C70>, _stacktrace = <traceback object at 0x00000245FCD35280>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD87070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCD87520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD87970>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCD87070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFC60D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFC60D0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE30280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFC6D90>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFC60D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE30280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFC60D0>, _stacktrace = <traceback object at 0x00000245FCA67840>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE30280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCFC69D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFC6D90>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE30280>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-AuthAdmin] 0.02
self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC63910>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC63910>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCC63A60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC63910>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC63910>, _stacktrace = <traceback object at 0x00000245FCFB8240>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCC631F0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCC63A60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63D30>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD09D60>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD09D60>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCB82130>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD09670>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD09D60>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCB82130>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD09D60>, _stacktrace = <traceback object at 0x00000245FCA67E80>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCB82130>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCD09AC0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD09670>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCB82130>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC5E670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC5E670>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCC5E400>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC5E670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCC5E670>, _stacktrace = <traceback object at 0x00000245FCC55580>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCC5EFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCC5E400>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC5EAC0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user61-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFCC580>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFCC580>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFCC1F0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFCC580>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFCC580>, _stacktrace = <traceback object at 0x00000245FCFC9040>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Christopher5972'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCFCCFA0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFCC1F0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC67C1C0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFEC9A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFEC9A0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFEC6A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFEC9A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCFEC9A0>, _stacktrace = <traceback object at 0x00000245FCFC86C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCFEC310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCFEC6A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCBD66D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9D82E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9D82E0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9D8D60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9D82E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC9D82E0>, _stacktrace = <traceback object at 0x00000245FC9F4100>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC9D8BB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9D8D60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC9D86A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC640EE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC640EE0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC915640>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC915640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9CD250>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC640EE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC915640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FC640EE0>, _stacktrace = <traceback object at 0x00000245FCCA1780>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC915640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC9CDEB0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FC9CD250>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC915640>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2DFFA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2DFFA0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2DFBB0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2DFFA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2DFFA0>, _stacktrace = <traceback object at 0x00000245FCE68A40>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD2DF8E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2DFBB0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2DF3D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD30C430>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD30C430>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD30C040>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD30C430>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD30C430>, _stacktrace = <traceback object at 0x00000245FC9A3E00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD30CD90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD30C040>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FC6AE550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCB50A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCB50A0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCA98310>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCB5D60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCB50A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA98310>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCB50A0>, _stacktrace = <traceback object at 0x00000245FD18FBC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA98310>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCB58E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCB5D60>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCA98310>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-AuthAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE935E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE935E0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE93970>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE93160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE935E0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE93970>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE935E0>, _stacktrace = <traceback object at 0x00000245FD2CB100>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE93970>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC6AE880>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE93160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE93970>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCBCAF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCBCAF0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCBC8E0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCBCAF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCCBCAF0>, _stacktrace = <traceback object at 0x00000245FD17A140>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCCBC460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCCBC8E0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCCBCE80>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD19A9A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD19A9A0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD19A6A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD19A9A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD19A9A0>, _stacktrace = <traceback object at 0x00000245FD18B0C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD19A3A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD19A6A0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCC63A60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user62-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD22DD90>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD22DD90>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD22DFA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD22DD90>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD22DD90>, _stacktrace = <traceback object at 0x00000245FC8AE300>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Stephanie1380'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD22D790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD22DFA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0253D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD01B670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD01B670>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD01B430>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD01B670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD01B670>, _stacktrace = <traceback object at 0x00000245FD01EF40>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD01B3A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD01B430>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD01BAF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14FC40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14FC40>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14FE50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14FC40>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14FC40>, _stacktrace = <traceback object at 0x00000245FD01C140>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD14F730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14FE50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDB4400>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF69370>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF69370>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCF69130>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF69370>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF69370>, _stacktrace = <traceback object at 0x00000245FD1ED040>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCF69D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCF69130>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF697F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2B9DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2B9DF0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2B9940>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2B9DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2B9DF0>, _stacktrace = <traceback object at 0x00000245FD221E00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD14F460>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2B9940>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B9550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B2B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B2B0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD14B520>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14BEE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B2B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD14B520>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B2B0>, _stacktrace = <traceback object at 0x00000245FD2BBA40>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD14B520>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD14B1C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14BEE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD14B520>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD032B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD032B0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD03E50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD032B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCD032B0>, _stacktrace = <traceback object at 0x00000245FCF8D080>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCD03310>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCD03E50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2BD670>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-AuthAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B820>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B820>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14B250>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B820>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD14B820>, _stacktrace = <traceback object at 0x00000245FD060180>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD14B520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD14B250>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD2B95B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-AppAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCB66550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCB66550>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCB66CA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCB66550>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCB66550>, _stacktrace = <traceback object at 0x00000245FD326440>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCB662E0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCB66CA0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC74F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-CfgImporter] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE428B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE428B0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE42760>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE428B0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCE428B0>, _stacktrace = <traceback object at 0x00000245FCCEA200>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCB303A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCE42760>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCE42AF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user63-AuthUser] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10B6A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10B6A0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD10BEE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10B6A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD10B6A0>, _stacktrace = <traceback object at 0x00000245FD26C480>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Henry6322'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCDC7820>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD10BEE0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD10B1F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-SysAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF99A00>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF99A00>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDD8160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF99A00>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCF99A00>, _stacktrace = <traceback object at 0x00000245FD241180>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCC6E550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCDD8160>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCF99CA0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-CFGTEMPLATE] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD0AE7F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD0AE7F0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD0AE610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD0AE7F0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD0AE7F0>, _stacktrace = <traceback object at 0x00000245FD24A1C0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCFBB760>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD0AE610>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD0AEBE0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-System] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD210910>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD210910>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2107C0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD210910>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD210910>, _stacktrace = <traceback object at 0x00000245FD217AC0>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCE423D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD2107C0>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD210DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-AudAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7DC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7DC0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FCB30400>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7DC0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FCDC7DC0>, _stacktrace = <traceback object at 0x00000245FD1F0D00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCB300D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FCB30400>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FCDC7610>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-LookupAdmin] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2040D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2040D0>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD204580>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD204580>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD204F70>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2040D0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD204580>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD2040D0>, _stacktrace = <traceback object at 0x00000245FC966A00>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD204580>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD204B20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD204F70>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD204580>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-CFGADMIN] 0.00
self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
> conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

C:\Python38\lib\site-packages\urllib3\connection.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

address = ('zw-int.spsi.co.za', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]

def create_connection(
address,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None,
socket_options=None,
):
"""Connect to *address* and return the socket object.

Convenience function. Connect to *address* (a 2-tuple ``(host,
port)``) and return the socket object. Passing the optional
*timeout* parameter will set the timeout on the socket instance
before attempting to connect. If no *timeout* is supplied, the
global default timeout setting returned by :func:`socket.getdefaulttimeout`
is used. If *source_address* is set it must be a tuple of (host, port)
for the socket to bind as a source address before making the connection.
An host of '' or port 0 tells the OS to use the default.
"""

host, port = address
if host.startswith("["):
host = host.strip("[]")
err = None

# Using the value from allowed_gai_family() in the context of getaddrinfo lets
# us select whether to work with IPv4 DNS records, IPv6 records, or both.
# The original create_connection function always returns all records.
family = allowed_gai_family()

try:
host.encode("idna")
except UnicodeError:
return six.raise_from(
LocationParseError(u"'%s', label empty or too long" % host), None
)

> for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

C:\Python38\lib\site-packages\urllib3\util\connection.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = 'zw-int.spsi.co.za', port = 80, family = <AddressFamily.AF_UNSPEC: 0>, type = <SocketKind.SOCK_STREAM: 1>, proto = 0, flags = 0

def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.

Translate the host/port argument into a sequence of 5-tuples that contain
all the necessary arguments for creating a socket connected to that service.
host is a domain name, a string representation of an IPv4/v6 address or
None. port is a string service name such as 'http', a numeric port number or
None. By passing None as the value of host and port, you can pass NULL to
the underlying C API.

The family, type and proto arguments can be optionally specified in order to
narrow the list of addresses returned. Passing zero as a value for each of
these arguments selects the full range of results.
"""
# We override this function since we want to translate the numeric family
# and socket type values to enum constants.
addrlist = []
> for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
E socket.gaierror: [Errno 11001] getaddrinfo failed

C:\Python38\lib\socket.py:918: gaierror

During handling of the above exception, another exception occurred:

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD348C70>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD348C70>, conn = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>, method = 'POST'
url = '/ICEAUTH/oauth/token', timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant...ive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}}
timeout_obj = Timeout(connect=None, read=None, total=None)

def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.

:param conn:
a connection from one of our connection pools

:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1

timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout

# Trigger any extra validation we need to do.
try:
self._validate_conn(conn)
except (SocketTimeout, BaseSSLError) as e:
# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
raise

# conn.request() calls http.client.*.request, not the method in
# urllib3.request. It also calls makefile (recv) on the socket.
try:
if chunked:
conn.request_chunked(method, url, **httplib_request_kw)
else:
> conn.request(method, url, **httplib_request_kw)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:398:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers=None):
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = _get_default_user_agent()
> super(HTTPConnection, self).request(method, url, body=body, headers=headers)

C:\Python38\lib\site-packages\urllib3\connection.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}

def request(self, method, url, body=None, headers={}, *,
encode_chunked=False):
"""Send a complete request to the server."""
> self._send_request(method, url, body, headers, encode_chunked)

C:\Python38\lib\http\client.py:1255:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
encode_chunked = False

def _send_request(self, method, url, body, headers, encode_chunked):
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = frozenset(k.lower() for k in headers)
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

# chunked encoding will happen if HTTP/1.1 is used and either
# the caller passes encode_chunked=True or the following
# conditions hold:
# 1. content-length has not been explicitly set
# 2. the body is a file or iterable, but not a str or bytes-like
# 3. Transfer-Encoding has NOT been explicitly set by the caller

if 'content-length' not in header_names:
# only chunk body if not explicitly set for backwards
# compatibility, assuming the client code is already handling the
# chunking
if 'transfer-encoding' not in header_names:
# if content-length cannot be automatically determined, fall
# back to chunked encoding
encode_chunked = False
content_length = self._get_content_length(body, method)
if content_length is None:
if body is not None:
if self.debuglevel > 0:
print('Unable to determine size of %r' % body)
encode_chunked = True
self.putheader('Transfer-Encoding', 'chunked')
else:
self.putheader('Content-Length', str(content_length))
else:
encode_chunked = False

for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = _encode(body, 'body')
> self.endheaders(body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'

def endheaders(self, message_body=None, *, encode_chunked=False):
"""Indicate that the last header line has been sent to the server.

This method sends the request to the server. The optional message_body
argument can be used to pass a message body associated with the
request.
"""
if self.__state == _CS_REQ_STARTED:
self.__state = _CS_REQ_SENT
else:
raise CannotSendHeader()
> self._send_output(message_body, encode_chunked=encode_chunked)

C:\Python38\lib\http\client.py:1250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>
message_body = b'{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
encode_chunked = False

def _send_output(self, message_body=None, encode_chunked=False):
"""Send the currently buffered request and clear the buffer.

Appends an extra \\r\\n to the buffer.
A message_body may be specified, to be appended to the request.
"""
self._buffer.extend((b"", b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
> self.send(msg)

C:\Python38\lib\http\client.py:1010:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>
data = b'POST /ICEAUTH/oauth/token HTTP/1.1\r\nHost: zw-int.spsi.co.za\r\nUser-Agent: PostmanRuntime/7.29.2\r\nAccept-Encodin...alive\r\ncompress_token: true\r\nrealm: /spsi/ice/int\r\nContent-Type: application/json\r\nContent-Length: 179\r\n\r\n'

def send(self, data):
"""Send `data' to the server.
``data`` can be a string object, a bytes object, an array object, a
file-like object that supports a .read() method, or an iterable object.
"""

if self.sock is None:
if self.auto_open:
> self.connect()

C:\Python38\lib\http\client.py:950:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>

def connect(self):
> conn = self._new_conn()

C:\Python38\lib\site-packages\urllib3\connection.py:205:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>

def _new_conn(self):
"""Establish a socket connection and set nodelay settings on it.

:return: New socket connection.
"""
extra_kw = {}
if self.source_address:
extra_kw["source_address"] = self.source_address

if self.socket_options:
extra_kw["socket_options"] = self.socket_options

try:
conn = connection.create_connection(
(self._dns_host, self.port), self.timeout, **extra_kw
)

except SocketTimeout:
raise ConnectTimeoutError(
self,
"Connection to %s timed out. (connect timeout=%s)"
% (self.host, self.timeout),
)

except SocketError as e:
> raise NewConnectionError(
self, "Failed to establish a new connection: %s" % e
)
E urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

C:\Python38\lib\site-packages\urllib3\connection.py:186: NewConnectionError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x00000245FD348220>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

C:\Python38\lib\site-packages\requests\adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD348C70>, method = 'POST', url = '/ICEAUTH/oauth/token'
body = '{"uSub": null, "otp": null, "refresh_token": null, "password": "5744Pearl@1", "username": "lungilem", "grant_type": "password", "client_secret": "password", "client_id": "client"}'
headers = {'User-Agent': 'PostmanRuntime/7.29.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'compress_token': 'true', 'realm': '/spsi/ice/int', 'Content-Type': 'application/json', 'Content-Length': '179'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None)
pool_timeout = None, release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/ICEAUTH/oauth/token', query=None, fragment=None), destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.

.. note::

More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.

.. note::

`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.

:param method:
HTTP request method (such as GET, POST, PUT, etc.)

:param url:
The URL to perform the request on.

:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.

:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.

:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.

Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.

If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.

:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.

:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.

:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.

:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.

:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.

:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.

:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.

:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""

parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme

if headers is None:
headers = self.headers

if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

if release_conn is None:
release_conn = response_kw.get("preload_content", True)

# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)

# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)

conn = None

# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn

http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)

# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)

# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None

# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False

# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)

try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)

conn.timeout = timeout_obj.connect_timeout

is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)

# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)

# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None

# Pass method to Response for length checking
response_kw["request_method"] = method

# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)

# Everything went great!
clean_exit = True

except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise

except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False

def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)

# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
and conn.proxy
and conn.proxy.scheme == "https"
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)

> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)

C:\Python38\lib\site-packages\urllib3\connectionpool.py:787:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/ICEAUTH/oauth/token', response = None
error = NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')
_pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x00000245FD348C70>, _stacktrace = <traceback object at 0x00000245FD1E7900>

def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.

:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.

:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)

total = self.total
if total is not None:
total -= 1

connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None

if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1

elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1

elif error:
# Other retry?
if other is not None:
other -= 1

elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status

else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status

history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)

new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)

if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\urllib3\util\retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

user = {'password': None, 'username': 'Jason9485'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD26D670>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:126: in delete_iceauth_api_roles_removeuserfromrole_helper
Authorization = f"Bearer {self.token_controller.post_iceauth_oauth_token_helper()['access_token']}"
helpers\auth\TokenController.py:112: in post_iceauth_oauth_token_helper
response = self.requests_utility.post('ICEAUTH/oauth/token', payload=payload, headers=headers,
utilities\requestsUtility.py:65: in post
rs_api = requests.post(url=self.url, data=request, headers=headers, params=params)
C:\Python38\lib\site-packages\requests\api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
C:\Python38\lib\site-packages\requests\api.py:59: in request
return session.request(method=method, url=url, **kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
C:\Python38\lib\site-packages\requests\sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <requests.adapters.HTTPAdapter object at 0x00000245FD348220>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()

def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.

:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""

try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)

chunked = not (request.body is None or "Content-Length" in request.headers)

if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)

# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool

low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)

try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)

for header, value in request.headers.items():
low_conn.putheader(header, value)

low_conn.endheaders()

for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")

# Receive the response from the server
r = low_conn.getresponse()

resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)

except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)

if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)

if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)

if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)

> raise ConnectionError(e, request=request)
E requests.exceptions.ConnectionError: HTTPConnectionPool(host='zw-int.spsi.co.za', port=80): Max retries exceeded with url: /ICEAUTH/oauth/token (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000245FD3489A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

C:\Python38\lib\site-packages\requests\adapters.py:565: ConnectionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-AuthAdmin] 0.93
user = {'password': None, 'username': 'Jason9485'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD5831C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-AppAdmin] 0.41
user = {'password': None, 'username': 'Jason9485'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD101C10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-CfgImporter] 0.37
user = {'password': None, 'username': 'Jason9485'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD3D6BE0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user64-AuthUser] 0.42
user = {'password': None, 'username': 'Jason9485'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD0A0070>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Jason9485', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-SysAdmin] 0.39
user = {'password': None, 'username': 'Matthew7949'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCA31B20>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-CFGTEMPLATE] 0.45
user = {'password': None, 'username': 'Matthew7949'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD0DBA00>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-System] 0.49
user = {'password': None, 'username': 'Matthew7949'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD2D4D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-AudAdmin] 0.44
user = {'password': None, 'username': 'Matthew7949'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD204CD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-LookupAdmin] 0.49
user = {'password': None, 'username': 'Matthew7949'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD3D61C0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-CFGADMIN] 0.56
user = {'password': None, 'username': 'Matthew7949'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCF5C2B0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-AuthAdmin] 0.44
user = {'password': None, 'username': 'Matthew7949'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD2C8250>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-AppAdmin] 0.38
user = {'password': None, 'username': 'Matthew7949'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD583220>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-CfgImporter] 0.43
user = {'password': None, 'username': 'Matthew7949'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCF6F520>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user65-AuthUser] 0.36
user = {'password': None, 'username': 'Matthew7949'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC7CC790>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Matthew7949', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-SysAdmin] 0.36
user = {'password': None, 'username': 'Thomas8137'}, role = 'SysAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD204D60>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'SysAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-CFGTEMPLATE] 0.41
user = {'password': None, 'username': 'Thomas8137'}, role = 'CFGTEMPLATE', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCE8BFD0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CFGTEMPLATE', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-System] 0.36
user = {'password': None, 'username': 'Thomas8137'}, role = 'System', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCBD6730>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'System', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-AudAdmin] 0.44
user = {'password': None, 'username': 'Thomas8137'}, role = 'AudAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC953A90>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AudAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-LookupAdmin] 0.49
user = {'password': None, 'username': 'Thomas8137'}, role = 'LookupAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD30C9A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'LookupAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-CFGADMIN] 0.39
user = {'password': None, 'username': 'Thomas8137'}, role = 'CFGADMIN', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC958550>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CFGADMIN', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-AuthAdmin] 0.30
user = {'password': None, 'username': 'Thomas8137'}, role = 'AuthAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCAFE6A0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AuthAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-AppAdmin] 0.40
user = {'password': None, 'username': 'Thomas8137'}, role = 'AppAdmin', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FCA8C3D0>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AppAdmin', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-CfgImporter] 0.81
user = {'password': None, 'username': 'Thomas8137'}, role = 'CfgImporter', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FC94FF10>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'CfgImporter', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Failed tests/auth/test_roles_controller.py::test_delete_iceauth_api_roles_removeuserfromrole[user66-AuthUser] 0.46
user = {'password': None, 'username': 'Thomas8137'}, role = 'AuthUser', caplog = <_pytest.logging.LogCaptureFixture object at 0x00000245FD2F9850>

def test_delete_iceauth_api_roles_removeuserfromrole(user, role, caplog):
caplog.set_level(logger.INFO)
role = role
agency = '0'
name = user
logger.info("TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole")
> api_info = obj_auth.delete_iceauth_api_roles_removeuserfromrole_helper(uid=name, roleName=role, agencyId=agency)

tests\auth\test_roles_controller.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
helpers\auth\RolesController.py:154: in delete_iceauth_api_roles_removeuserfromrole_helper
response = self.requests_utility.delete('ICEAUTH/api/roles/removeUserFromRole', payload=payload,
utilities\requestsUtility.py:97: in delete
self.assert_status_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <utilities.requestsUtility.RequestsUtility object at 0x00000245FABA12B0>

def assert_status_code(self):
> assert self.status_code == self.expected_status_code, \
f"Status code error has occurred for post api call to: {self.url}\n" \
f"Expected status code {self.expected_status_code} but actual {self.status_code}\n" \
f"Response Json: {self.rs_json}"
E AssertionError: Status code error has occurred for post api call to: http://zw-int.spsi.co.za/ICEAUTH/api/roles/removeUserFromRole
E Expected status code 201 but actual 500
E Response Json: {201, 'statusCode'}

utilities\requestsUtility.py:20: AssertionError
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:53 TEST: test delete call: ICEAUTH/api/roles/removeUserFromRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:152 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{} params :{'uid': {'username': 'Thomas8137', 'password': None}, 'roleName': 'AuthUser', 'agencyId': '0'} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno'}
Passed tests/auth/test_roles_controller.py::test_get_iceauth_api_roles_getallroles 0.77
No log output captured.
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[SysAdmin] 0.57
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[CFGTEMPLATE] 0.78
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[System] 0.59
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[AudAdmin] 0.76
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[LookupAdmin] 0.68
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[CFGADMIN] 0.87
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[AuthAdmin] 0.94
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[AppAdmin] 1.13
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[CfgImporter] 1.03
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_roles_controller.py::test_post_iceauth_api_roles_addusertorole[AuthUser] 0.90
------------------------------Captured stderr call------------------------------
INFO:root:TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO:root:Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
-------------------------------Captured log call--------------------------------
INFO root:test_roles_controller.py:38 TEST:test post call:ICEAUTH/api/roles/addUserToRole INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:RolesController.py:55 Helper function for ICEAUTH/api/roles/addUserToRole payload :{} INFO root:RolesController.py:58 Response function for ICEAUTH/api/roles/addUserToRole payload :{201, 'statusCode'}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user0] 0.77
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Alan6228'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '32b5740a-785a-40e4-b4ff-132dd49417ef', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Alan6228'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '32b5740a-785a-40e4-b4ff-132dd49417ef', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user1] 0.60
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Heather5250'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'c29d6deb-5616-4be7-a0e3-3ddfb3401246', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Heather5250'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'c29d6deb-5616-4be7-a0e3-3ddfb3401246', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user2] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Lori8588'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a16ded60-129b-4235-aef9-776d848ce2f2', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Lori8588'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a16ded60-129b-4235-aef9-776d848ce2f2', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user3] 0.44
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James5235'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'decf2e19-78a4-40b6-8ad4-adc528eb4853', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James5235'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'decf2e19-78a4-40b6-8ad4-adc528eb4853', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user4] 0.47
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Hailey4208'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'c8c82be8-e76f-44cf-ace9-39446e9627ab', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Hailey4208'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'c8c82be8-e76f-44cf-ace9-39446e9627ab', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user5] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Natalie4335'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '4248acdd-25b8-45f0-989c-d679c53fc7ec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Natalie4335'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '4248acdd-25b8-45f0-989c-d679c53fc7ec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user6] 0.48
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Anne9225'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a7d6f69a-989f-45df-af8e-ba71e5e804bb', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Anne9225'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a7d6f69a-989f-45df-af8e-ba71e5e804bb', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user7] 0.40
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Adrian7852'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '206f01a9-b4b3-42a6-8897-3bb4ea1ef1f4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Adrian7852'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '206f01a9-b4b3-42a6-8897-3bb4ea1ef1f4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user8] 0.49
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Erin5656'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b71ac6c8-a470-4437-bfe3-3dfa6b855140', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Erin5656'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b71ac6c8-a470-4437-bfe3-3dfa6b855140', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user9] 0.53
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nancy9709'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f98007b6-97ba-47ab-bf14-d91bc5b15dc1', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nancy9709'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f98007b6-97ba-47ab-bf14-d91bc5b15dc1', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user10] 0.45
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Eric7504'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1739b877-f595-4ecf-be4c-e120957c723b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Eric7504'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1739b877-f595-4ecf-be4c-e120957c723b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user11] 0.55
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Christopher5938'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '6161ffed-cf74-4e7a-b8b1-4ec530914943', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Christopher5938'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '6161ffed-cf74-4e7a-b8b1-4ec530914943', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user12] 0.54
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Gregory1469'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1d2aff63-4b65-4535-8f05-6cb0212c4791', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Gregory1469'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1d2aff63-4b65-4535-8f05-6cb0212c4791', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user13] 0.57
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brian6022'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'e76550e0-319b-42b4-9dde-10746d7c1dc5', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brian6022'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'e76550e0-319b-42b4-9dde-10746d7c1dc5', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user14] 0.52
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James8142'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f1560017-9464-4bb7-8ced-7f430395fa6e', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James8142'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f1560017-9464-4bb7-8ced-7f430395fa6e', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user15] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Pamela5006'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '2027cf47-05d9-4fbb-a602-a830d33b9385', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Pamela5006'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '2027cf47-05d9-4fbb-a602-a830d33b9385', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user16] 0.54
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'David1503'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '720cf136-e0af-433d-85cf-8b24cdd790d7', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'David1503'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '720cf136-e0af-433d-85cf-8b24cdd790d7', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user17] 0.46
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Janet5668'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '66831179-9d2d-411a-9e33-7f0c2667eb06', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Janet5668'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '66831179-9d2d-411a-9e33-7f0c2667eb06', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user18] 0.44
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brett5948'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '68226e81-21d5-4b24-bda5-ed97b1db6c58', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brett5948'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '68226e81-21d5-4b24-bda5-ed97b1db6c58', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user19] 0.42
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Tammy2306'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3c522802-7f6a-4b19-ad6a-29b8100b23ec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Tammy2306'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3c522802-7f6a-4b19-ad6a-29b8100b23ec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user20] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Kyle1362'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3575f543-a8ef-40b7-ae7d-043dd9c23bb0', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Kyle1362'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3575f543-a8ef-40b7-ae7d-043dd9c23bb0', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user21] 0.44
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Susan1790'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1638e23d-2265-418e-9f70-fd8ab67fb07c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Susan1790'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1638e23d-2265-418e-9f70-fd8ab67fb07c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user22] 0.52
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Benjamin2771'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b69cbf93-093e-4c8f-9f47-48d49d1e5e66', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Benjamin2771'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b69cbf93-093e-4c8f-9f47-48d49d1e5e66', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user23] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Ryan5505'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '4fdbc6c8-67f2-4fcf-9ecd-305303a5bebe', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Ryan5505'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '4fdbc6c8-67f2-4fcf-9ecd-305303a5bebe', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user24] 0.49
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Andrew9440'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5d74ab86-5bf2-4d3e-98b6-20ddf9347865', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Andrew9440'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5d74ab86-5bf2-4d3e-98b6-20ddf9347865', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user25] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Luke6918'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '06911813-a096-4a45-8f4e-6fff0773ea1c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Luke6918'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '06911813-a096-4a45-8f4e-6fff0773ea1c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user26] 0.45
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Troy6219'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'e6974d81-5916-47f1-a6c3-3889c08a4d9f', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Troy6219'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'e6974d81-5916-47f1-a6c3-3889c08a4d9f', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user27] 0.46
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Ashley6458'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'dc120673-2d5c-4c60-98f3-add731878c46', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Ashley6458'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'dc120673-2d5c-4c60-98f3-add731878c46', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user28] 0.55
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dakota3901'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '25ded37e-be42-4c62-89af-e5c074a4dd22', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dakota3901'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '25ded37e-be42-4c62-89af-e5c074a4dd22', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user29] 0.46
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Andrew6818'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5719dbde-95d2-4fb5-a14e-77da19fe5aae', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Andrew6818'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5719dbde-95d2-4fb5-a14e-77da19fe5aae', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user30] 0.43
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'John1911'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '27514fec-4b2e-47be-9466-786a8cd624ac', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'John1911'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '27514fec-4b2e-47be-9466-786a8cd624ac', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user31] 0.52
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nicholas7453'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'de9899e3-fadf-4cad-9ef5-8bdddaf91a05', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nicholas7453'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'de9899e3-fadf-4cad-9ef5-8bdddaf91a05', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user32] 0.64
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Daniel2258'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b8df499b-d8fc-41fb-b3a0-85e5b9a55a14', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Daniel2258'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b8df499b-d8fc-41fb-b3a0-85e5b9a55a14', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user33] 0.65
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Pamela3128'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'fb1a0e4f-73f7-45f8-96dd-1e8f658b9d9e', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Pamela3128'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'fb1a0e4f-73f7-45f8-96dd-1e8f658b9d9e', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user34] 0.55
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Samantha3178'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '0fbd3eff-d0a7-453b-a6de-ccf775c25abf', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Samantha3178'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '0fbd3eff-d0a7-453b-a6de-ccf775c25abf', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user35] 0.49
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nicole8652'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '359baa92-af03-48c7-98cd-34e7f03834eb', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Nicole8652'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '359baa92-af03-48c7-98cd-34e7f03834eb', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user36] 0.55
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'William3377'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '7ddd74ee-da10-4a8d-874d-3b51275438fc', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'William3377'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '7ddd74ee-da10-4a8d-874d-3b51275438fc', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user37] 0.60
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'John3555'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd66e052e-2a03-48a1-ad64-79e6bb32b60a', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'John3555'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd66e052e-2a03-48a1-ad64-79e6bb32b60a', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user38] 0.66
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Angela2650'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '7fc7c728-7d57-4fa5-a064-519e165beb88', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Angela2650'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '7fc7c728-7d57-4fa5-a064-519e165beb88', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user39] 0.52
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dennis1385'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'cdc95e56-5566-4f16-bb2b-66ef2c76b8d3', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dennis1385'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'cdc95e56-5566-4f16-bb2b-66ef2c76b8d3', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user40] 0.49
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Paul8495'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3f099cd0-c5a7-4cd7-8cde-8feed128c556', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Paul8495'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3f099cd0-c5a7-4cd7-8cde-8feed128c556', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user41] 0.58
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Robert3514'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd8dc2f4a-00ff-40f3-ad02-cd9bdf0dcda4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Robert3514'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd8dc2f4a-00ff-40f3-ad02-cd9bdf0dcda4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user42] 0.45
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Rachel3285'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '9745ada8-3a26-437c-bc2f-8100c1d1bf88', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Rachel3285'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '9745ada8-3a26-437c-bc2f-8100c1d1bf88', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user43] 0.39
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Michael9966'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '8b875713-9b2d-4178-ba8e-1c6920a7d458', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Michael9966'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '8b875713-9b2d-4178-ba8e-1c6920a7d458', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user44] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Mary6731'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '312f325b-1bdd-4cd0-a9a7-584e1cdc7cd6', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Mary6731'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '312f325b-1bdd-4cd0-a9a7-584e1cdc7cd6', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user45] 0.54
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brianna7825'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b01b8f2f-0c3c-4e0f-ba7e-33bc23f43f18', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Brianna7825'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'b01b8f2f-0c3c-4e0f-ba7e-33bc23f43f18', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user46] 0.48
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephen4080'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '15b85961-17ee-4480-8810-909e55ecca94', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephen4080'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '15b85961-17ee-4480-8810-909e55ecca94', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user47] 0.45
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Garrett5671'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ae614c9e-b02e-4081-9e90-4d7c97561387', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Garrett5671'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ae614c9e-b02e-4081-9e90-4d7c97561387', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user48] 0.61
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Antonio8292'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3ba36310-fb83-4b11-ae0a-5ab182a830c9', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Antonio8292'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '3ba36310-fb83-4b11-ae0a-5ab182a830c9', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user49] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Steven7008'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '0644e7ee-7383-4f8f-8025-f555a62c69aa', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Steven7008'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '0644e7ee-7383-4f8f-8025-f555a62c69aa', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user50] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James7209'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '733e8c20-69a0-4a6b-8a12-0a1fe0c7a5ea', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'James7209'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '733e8c20-69a0-4a6b-8a12-0a1fe0c7a5ea', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user51] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephanie7195'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '8c9f6d6a-9ca5-433d-abaa-dc6fd98d319c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephanie7195'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '8c9f6d6a-9ca5-433d-abaa-dc6fd98d319c', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user52] 0.62
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Bradley1376'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '483540ae-27e6-4345-a719-5158cf4b89e8', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Bradley1376'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '483540ae-27e6-4345-a719-5158cf4b89e8', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user53] 0.53
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dorothy9001'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'be4caa7f-3d26-4947-a0b3-c8262a48a4ba', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Dorothy9001'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'be4caa7f-3d26-4947-a0b3-c8262a48a4ba', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user54] 0.47
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Kevin6594'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd9ab67af-4219-4833-8009-e26ee81a170b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Kevin6594'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd9ab67af-4219-4833-8009-e26ee81a170b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user55] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Michelle8089'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ee817716-e9e0-450d-a05b-a41bdf7441e4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Michelle8089'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ee817716-e9e0-450d-a05b-a41bdf7441e4', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user56] 0.53
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Hannah3252'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd2331ad3-2ddb-4019-a48f-105a0d6da12b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Hannah3252'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'd2331ad3-2ddb-4019-a48f-105a0d6da12b', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user57] 0.51
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Cheryl9743'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '2674069b-b800-45f1-a9d1-fe0d690fad3d', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Cheryl9743'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '2674069b-b800-45f1-a9d1-fe0d690fad3d', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user58] 0.43
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Cheyenne1834'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '28b7290d-33b0-44c3-852a-eb8a5b876b04', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Cheyenne1834'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '28b7290d-33b0-44c3-852a-eb8a5b876b04', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user59] 0.43
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Jason6231'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '21fe666f-1913-4682-be4c-50faba30d3bf', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Jason6231'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '21fe666f-1913-4682-be4c-50faba30d3bf', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user60] 0.59
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Alejandro4698'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1b5eaa3d-f575-45d0-8e5c-a877caf7993d', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Alejandro4698'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '1b5eaa3d-f575-45d0-8e5c-a877caf7993d', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user61] 0.49
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Christopher5972'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '122cc2b2-3d28-40d2-9cad-e47ce04c8bec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Christopher5972'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '122cc2b2-3d28-40d2-9cad-e47ce04c8bec', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user62] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephanie1380'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'cc641ef3-0283-420d-9987-cd85936ca160', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Stephanie1380'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'cc641ef3-0283-420d-9987-cd85936ca160', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user63] 0.57
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Henry6322'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f412d841-8581-4690-8724-423f6add4805', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Henry6322'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'f412d841-8581-4690-8724-423f6add4805', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user64] 0.50
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Jason9485'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ec9c0402-5ace-490d-aa41-d826fb461dcc', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Jason9485'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'ec9c0402-5ace-490d-aa41-d826fb461dcc', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user65] 0.56
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Matthew7949'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a066762b-21f4-49a2-87f9-4887ef13d6b6', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Matthew7949'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': 'a066762b-21f4-49a2-87f9-4887ef13d6b6', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
Passed tests/auth/test_user_controller_two.py::test_delete_iceauth_api_v2_users_json[user66] 0.47
------------------------------Captured stderr call------------------------------
INFO:root:TEST: test delete call: ICEAUTH/api/v2/users/json INFO:root:Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO:root:Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Thomas8137'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO:root:ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5aa23a14-2b84-49eb-8350-d23f91f2c7ba', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}
-------------------------------Captured log call--------------------------------
INFO root:test_user_controller_two.py:105 TEST: test delete call: ICEAUTH/api/v2/users/json INFO root:TokenController.py:111 Helper function for ICEAUTH/oauth/token payload :{'uSub': None, 'otp': None, 'refresh_token': None, 'password': '5744Pearl@1', 'username': 'lungilem', 'grant_type': 'password', 'client_secret': 'password', 'client_id': 'client'} headers: {'compress_token': 'true', 'realm': '/spsi/ice/int', 'Accept': '*/*', 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.29.2'} params: {} INFO root:UserControllerV2.py:294 Helper function for iceauth/api/v2/users/json Authentication: Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno payload :{'uid': 'Thomas8137'} params :{} headers :{'Authorization': 'Bearer eyJraWQiOiI3Mjg1OWQ5My03M2FmLTQxODctOWVmZC00NmI2YzYyZDlhYmMiLCJhbGciOiJSUzI1NiJ9.eyJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwic3ViIjoiTHVuZ2lsZW0iLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwibWFpbCI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJ1c2VyX25hbWUiOiJMdW5naWxlbSIsImlzcyI6IklDRUFVVEgiLCJjbGllbnRfaWQiOiJjbGllbnQiLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwic2NvcGUiOlsidHJ1c3QiLCJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNjc1NzczMDE1LCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImlhdCI6MTY3NTc2OTQxNSwianRpIjoiNWZlYzk1ODktNjY3ZS00MzBkLWFhNWMtY2YyZWU5Y2EzZjIyIiwicHJlZmVycmVkX2xhbmd1YWdlIjoiZW4iLCJvcmdfdW5pdCI6IjAiLCJvcmdVbml0IjoiMCIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwiYXV0aG9yaXRpZXMiOlsiQ09NUFJFU1NFRF9INHNJQUFBQUFBQUFBQXZ5OTNHTk42aHhMQ2h3VE1uTnpGTUpndkpMVTlENEpSa1lBcUhGcVVVd2ZuQmxjVWxxTG96bjdPWWU0dW9iNE9NWTRnb1hTa3YzekMzSUx5cEI2UEhKejg4dVJiVVhhQXdLSDJpUW80dXZweDhBU2YxQ09xY0FBQUFcdTAwM2QiXSwiYXVkIjoicmVzdF9hcGkiLCJmaXJzdE5hbWUiOiJMdW5naWxlIiwiZW1haWxfYWRkcmVzcyI6Imx1bmdpbGVtQGljZXRlY2guaW8iLCJhdHRyaWJ1dGVzIjp7Im9yZ191bml0IjoiMCIsInByZWZlcnJlZF9sYW5ndWFnZSI6ImVuIiwidXNlcl9uYW1lIjoiTHVuZ2lsZW0iLCJmaXJzdF9uYW1lIjoiTHVuZ2lsZSIsImxhc3RfbmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRfZXhwaXJ5X3RpbWUiOm51bGwsInBhc3N3b3JkX2V4cGlyeV93YXJuaW5nX3RpbWUiOm51bGwsIm1haWwiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIiwib3JnVW5pdCI6IjAiLCJwcmVmZXJyZWRMYW5ndWFnZSI6ImVuIiwidXNlcm5hbWUiOiJMdW5naWxlbSIsImZpcnN0TmFtZSI6Ikx1bmdpbGUiLCJsYXN0TmFtZSI6Ik1vdHN3ZW5pIiwicGFzc3dvcmRFeHBpcnlUaW1lIjpudWxsLCJwYXNzd29yZEV4cGlyeVdhcm5pbmdUaW1lIjpudWxsLCJlbWFpbEFkZHJlc3MiOiJsdW5naWxlbUBpY2V0ZWNoLmlvIn0sInJlYWxtIjoiL3Nwc2kvaWNlL2ludCIsInVzZXJuYW1lIjoiTHVuZ2lsZW0ifQ.B-DAu3Cw5rqxfbW5hSdQQU0tU_8Z1G5EiXto02iBd-NfCJJFBaglEagMWx9L8aU3Wz8YC_17UQX4bV14z7XfhzEt4OfItIXNftOgm1cUtfYkTWOieTSa3UZ5oWr8VduhRO5hmgcPVtahrZWya2Zjo5mgQ4CTiKeLVCKy6vT3Qno', 'Accept': '*/*', 'Content-Type': 'application/json'} INFO root:UserControllerV2.py:298 ICEAUTH/api/v2/users/json, Response {'machineName': 'iceauth-5ccf7c5546-xdk2j', 'txGuid': '5aa23a14-2b84-49eb-8350-d23f91f2c7ba', 'message': 'User deleted', 'statusCd': 3, 'resultCd': 1, 'data': [], 'referenceN': None}